[Kotlin] 실습 3문제 풀이 (변수 및 조건문)

Jean·2023년 8월 1일
0

실습문제 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^

profile
아 왜 안돼

0개의 댓글