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

    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

    반응형

    댓글