이 문제는 내 블로그에 꾸준히 등장하는 패턴이다. 문자형을 정수형으로 변환하는 게 핵심인데, 코틀린으로 벌써 이 유형을 4번째 풀고 있다. 하지만, 귀신같이 오늘도 헷갈려서 내 블로그를 뒤적였다. 문제를 다같이 보자. 문제 반복문으로 문자열 각 인덱스를 정수형으로 변환해 모두 더하면 끝이다. 풀이 다시 한 번 나에게 상기시키는 메소드지만, Character를 Int로 바꿀 때는 웬만한 상황에서 digitToInt()를 사용하면 된다. 웬만한 상황이라 적은 이유는 코틀린 버전이 낮은 상황(1.5 아래)에선 Character.getNumericValue를 사용해야하기 때문이다. 실행 결과
suspend function은 다른 suspend function이나 Coroutine에서만 호출될 수 있다. 일반적인 코드에서 suspend function을 호출하려면 새 코루틴을 시작해야한다. 이렇게 만들어진 코루틴에서는 suspend function과 일반 함수를 모두 호출할 수 있다. suspend fun someMethod(delay: Long) { println("starts method") delay(delay) println("ends method") } 위 함수에서 suspend function이 실제로 suspend될 수 있는 지점은 어디일까? 바로 delay() 부분인데 더 길고 복잡한 suspend function이 있다면 그 함수가 포함하고 있는 모든 suspend funct..
오랜만에 돌아온 PCCE 기출문제 시리즈이다. 이 사이에 있던 문제는 딱히 블로그에 올릴 만한 내용은 없어서 스킵해버렸다. 문제 실행 순서대로 설명해보면 n번 학생이 본인 점수를 질의한다. 그럼 해당 번호에 맞는 점수 두 개를 비교해서 같다, 다르다를 판단한다. 이렇게 정리해볼 수 있겠다. 풀이 원래는 score_list[i]와 같은지 판단하도록 코드가 구성되어있었다. 하지만, i번째를 비교하게 되면 입출력 예시에 대입해볼 때 값이 이상해진다. 학생의 번호 값이 들어있는 numbers 안의 값을 가져와야 하는데 score_list의 0번부터 비교하게 되면 안된다. 그래서 numbers[i] 값을 가져오게 되었는데 이 때, 입출력 예시에서 numbers 값이 1인 경우, our_score에서 비교하는 값이..