코틀린을 이용한 코딩테스트 준비 과정에서, 많은 이들이 직면하는 문제 중 하나는 다양한 알고리즘 문제를 이해하고 해결하는 것입니다. 이번 강좌에서는 ‘주몽의 명령’이라는 주제로 알뜰한 알고리즘 문제를 풀어보면서, 주몽의 군대와 관련된 고대의 서사를 바탕으로 문제를 쉽게 이해하고 해결하는 방법을 익히겠습니다.
문제 설명
주몽은 자신의 군대를 이끌어 북쪽의 적을 물리치고, 자신의 왕국을 세우기 위해 명령을 내렸습니다. 그의 명령은 각 병사에게 특정한 행동을 하도록 지시하는 것이었습니다. 이 문제에서는 N명의 병사가 있을 때, 각 병사가 어떤 행동을 할지 결정해야 합니다.
문제는 다음과 같습니다:
문제: 주몽의 명령
주몽에게는 N명의 병사가 있습니다. 각 병사는 1부터 100까지의 랜덤한 숫자로 나타내어지며, 주몽은 짝수 숫자를 갖고 있는 병사에게 “앞으로 나가라!”고 명령하고, 홀수 숫자를 갖고 있는 병사에게는 “뒤로 물러나라!”고 명령합니다.
주어진 N명의 병사 숫자 리스트에서 짝수와 홀수 병사의 수를 계산하고, 각각의 명령을 출력하는 프로그램을 작성하세요.
입력
첫 번째 줄에 병사의 수 N (1 ≤ N ≤ 1000)이 주어집니다. 두 번째 줄에 N개의 병사 숫자가 공백으로 구분되어 주어집니다.
출력
각 병사의 짝수/홀수 여부에 따라 명령어를 출력합니다. "앞으로 나가라!" 또는 "뒤로 물러나라!"를 N개의 줄에 걸쳐 출력합니다.
예제 입력
5 1 2 3 4 5
예제 출력
뒤로 물러나라! 앞으로 나가라! 뒤로 물러나라! 앞으로 나가라! 뒤로 물러나라!
문제 해결 과정
이제 이 문제를 해결하는 방법을 단계별로 알아보겠습니다. 여기서는 코틀린을 사용하여 문제를 해결할 것입니다.
1단계: 입력 받기
먼저, 사용자로부터 입력을 받을 필요가 있습니다. 이를 위해 readLine()
함수를 사용하여 입력값을 받아올 수 있습니다.
2단계: 숫자 리스트로 변환
입력된 숫자는 공백으로 구분되어 있기 때문에, 이를 리스트로 변환해야 합니다. 코틀린의 split()
메서드를 이용해 공백으로 나눕니다.
3단계: 짝수/홀수 판단 및 명령 출력
이제 전수에 대해 반복문을 돌리면서 각 숫자가 짝수인지 홀수인지 판단하고 이에 맞는 명령어를 출력합니다. 코틀린의 if
문을 사용하여 조건을 판단할 수 있습니다.
코드 예시
fun main() { // 1단계 - 입력 받기 val n = readLine()!!.toInt() // 병사 수 val soldiers = readLine()!!.split(" ").map { it.toInt() } // 병사 숫자 리스트 // 3단계 - 짝수/홀수 판단 및 명령 출력 for (soldier in soldiers) { if (soldier % 2 == 0) { println("앞으로 나가라!") } else { println("뒤로 물러나라!") } } }
전체 과정 요약
문제를 해결하는 과정은 다음과 같이 요약될 수 있습니다:
- 주어진 입력을 읽어온다.
- 입력된 숫자를 리스트로 변환한다.
- 각 병사의 숫자에 대해 짝수/홀수를 판단하고 명령을 출력한다.
마무리
이번 강좌를 통해 주몽의 명령 문제를 해결하는 과정과 코틀린을 사용하는 방법을 배웠습니다. 알고리즘 문제는 다양한 형태로 주어질 수 있으며, 기본적인 문제 해결 구조와 접근 방식을 이해하는 것이 중요합니다. 앞으로도 다양한 문제를 풀어보며 알고리즘 능력을 기르도록 합시다!