실습문제 1 (변수)
var first = "성"
var second = "이름"
/* 동작 구현 */
println("결과물: $first $second") // "결과물: 이름 성"력하세요
실습문제 2 (리스트 + 변수)
val list = mutableListOf(1,2)
/* 동작 구현 */
println("결과물: $list") // "결과물: [2, 1]"
실습문제 3 (조건문 + 반복문)
전달받은 list에서 n보다 큰 수를 리스트로 출력하세요.
val list = listOf(5,1,7,3,8)
val n = 6
val newList = mutableListOf<Int>()
/* 동작 구현 */
println("결과물: $newList")
실습문제 1 풀이
처음에는 stack 으로 풀어야겠다고 생각했다. 나중에 입력한게 먼저 출력되었기 때문이다.
import java.util.*
fun main () {
var stack = Stack<String>()
stack.push("성")
stack.push("이름")
println("결과물 : ${stack.pop()} ${stack.peek()}")
}
하지만 선생님이 변수를 이용하는 문제라고 하셨다.
물컵 2개에 각각 물이 담겨져 있을 때, 두 개의 물을 바꿔 담기 위해서는 새로운 물컵이 필요하다고 했다.
앗 감이 안잡힌다..!
그래서 짝꿍에게 물어봤다.
'야 이거 어케 해..?'
그냥 재 정의하면 되는거 아니냐고 하길래
fun main () {
var first = "성"
var second = "이름"
first = "이름"
second = "성"
println("결과물: $first $second")}
이렇게 했는데 선생님이 다시 변수를 선언해서 작성하면, 이름과 성을 적지 않아도 쓸 수 있다고 하셨다.
그때부터 머리 싸매기
흐으음.. 변수를 어떻게 선언하면 둘이 바뀔까?
물병을 머리 속에 그리면서 생각해봤다.
fun main () {
var first = "성"
var second = "이름"
var new = first
first = second
second = new
println("결과물: $first $second")
}
실습문제 2 풀이
fun main () {
val list = mutableListOf(1,2)
list.reverse()
println(“결과물: $list”) // “결과물: [2, 1]”
}
구냥 reverse 써서 1초만에 완성
가급적 reverse를 안써서 구현하는게 좋다는걸 알지만, 모르겠는걸 ^^
실습문제 2 풀이
//[조건문 + 반복문]전달받은 list에서 n보다 큰 수를 리스트로 출력하세요.
fun main () {
val list = listOf(5,1,7,3,8)
val n = 6
val newList = mutableListOf<Int>()
for (i in list) {
if(i > n){
newList += i
}
}
println("결과물: $newList")
}
// 출력 : 결과물: [7, 8]
이것도 아주 빠르게 완성
for, if 는 정말 자주 썼더니 형태를 외웠다.
확장함수를 다 외워서 쓰면 안되는걸까?
생각했었는데 그렇게하면 다른 환경에서는 구현이 안될 수 도 있다고 한다. 또 문제해결능력을 기르는데 큰 도움이 안된다고 한다.
그래서 알고리즘 문제 연습을 한다.
지금 점심시간인데 커피 마실까 말까 고민중 ^3^