Code/Codility

1. 반복 (Iterations) Codility Lesson 한국어 정리본 (JavaScript ver.)

haeunkim.on 2025. 3. 1. 21:44

Codility 에서 제공하는 lesson의 open material 을 모두 한국어로 정리하는 동시에, 나는 JS 로 코딩테스트를 봐야하기 때문에 튜토리얼 속 파이썬 코드를 JS 코드로 바꿔 정리하게 되었다.
100% 완벽한 번역본이 아닌 필자의 입맛대로 (벼락치기용 )ㅎ 정리한 내용이다.

lesson 17까지 다 공부하고 문제 풀고 블로그에 포스팅까지 하는게 목표!

반복문 (Iterations)

프로그래밍에서 반복(iterating) 이란 프로그램의 일부를 여러 번 실행하는 것을 의미한다. 이 장에서는 반복을 수행할 수 있는 기본적인 프로그래밍 구조인 for문while문을 다룬다.


1.1. For 루프 (For Loops)

어떤 연산을 일정 횟수만큼 반복하거나, 특정 컬렉션의 각 요소에 대해 반복하려면 for 루프를 사용하는 것이 적절하다.

For 루프 문법

for (let some_variable of range_of_values) {
    // loop_body
}

for 루프는 range_of_values 내의 각 값에 대해 loop_body를 실행하며, 현재 값은 some_variable에 할당된다.

예를 들어, 0부터 99까지의 정수를 출력하는 루프는 다음과 같다.

JavaScript 코드:

for (let i = 0; i < 100; i++) {
    console.log(i);
}

실행 결과:

0
1
2
...
99

예제: 팩토리얼 계산

양의 정수 n에 대해 팩토리얼을 계산하는 프로그램을 작성해보자.

JavaScript 코드:

let n = 5; // 예제 입력값
let factorial = 1;
for (let i = 1; i <= n; i++) {
    factorial *= i;
}
console.log(factorial);

실행 결과 (n = 5):

120

예제: 별표(asterisk) 삼각형 출력

n이 주어졌을 때, 다음과 같은 별 삼각형을 출력하는 프로그램을 작성하자.

*
* *
* * *
* * * *

JavaScript 코드:

let n = 4; // 예제 입력값
for (let i = 1; i <= n; i++) {
    console.log('* '.repeat(i).trim());
}

실행 결과 (n = 4):

*
* *
* * *
* * * *

1.2. While 루프 (While Loops)

for 루프는 반복 횟수가 정해져 있을 때 사용하지만, 몇 번 반복할지 미리 알 수 없는 경우 while 루프를 사용해야 한다.

While 루프 문법

while (some_condition) {
    // loop_body
}

반복이 시작될 때마다 some_condition이 평가되며, 값이 true이면 loop_body가 실행된다. 값이 false가 되면 루프를 종료한다.

예제: 숫자의 자릿수 세기

주어진 정수 n의 자릿수를 구하는 프로그램을 작성해보자.

JavaScript 코드:

let n = 12345; // 예제 입력값
let result = 0;
while (n > 0) {
    n = Math.floor(n / 10);
    result++;
}
console.log(result);

실행 결과 (n = 12345):

5

예제: 피보나치 수열

주어진 n 이하의 모든 피보나치 수를 출력하는 프로그램을 작성하자.

JavaScript 코드:

let n = 20; // 예제 입력값
let a = 0, b = 1;
while (a <= n) {
    console.log(a);
    let c = a + b;
    a = b;
    b = c;
}

실행 결과 (n = 20):

0
1
1
2
3
5
8
13

1.3. 컬렉션 반복 (Looping Over Collections)

지금까지 정수를 반복하는 방법을 살펴보았다. 하지만 리스트, 셋(set), 딕셔너리(dictionary)와 같은 컬렉션을 반복하는 것도 가능하다.

리스트 반복 (Looping Over Lists)

JavaScript 코드:

let days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
for (let day of days) {
    console.log(day);
}

실행 결과:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

셋(Set) 반복

셋을 사용하면 요소들이 저장된 순서와 관계없이 반복된다.

JavaScript 코드:

let days = new Set(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']);
for (let day of days) {
    console.log(day);
}

딕셔너리(Dictionary) 반복

JavaScript 코드:

let days = {
    'mon': 'Monday',
    'tue': 'Tuesday',
    'wed': 'Wednesday',
    'thu': 'Thursday',
    'fri': 'Friday',
    'sat': 'Saturday',
    'sun': 'Sunday'
};

for (let key in days) {
    console.log(`${key} stands for ${days[key]}`);
}

실행 결과:

mon stands for Monday
tue stands for Tuesday
wed stands for Wednesday
thu stands for Thursday
fri stands for Friday
sat stands for Saturday
sun stands for Sunday

반응형