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
댓글