반응형

https://www.codetree.ai/missions/4/problems/a-to-b/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        int result = 0;
        // a에서 시작해서 조건에 따라 커지다가 b보다 커지는 순간에 종료
        // 홀수->2배
        // 짝수->+3

        System.out.print(a + " ");
        for (int i = a; i <= b;) {
            if (i % 2 == 0)
                i += 3;
            else
                i *= 2;
            
            if (i <= b)
                System.out.print(i + " ");
        }  

        sc.close();
    }
}

 

 

설명

System.out.print(a + " ");

- 예를 들어 '2, 13'을 입력하면 조건에 따라 계산 후 '2 5 10 13'이 나와야 한다.

- 그런데 양쪽을 보니 a와 b의 값이 있다.

- 먼저 a는 그대로 출력을 해주고 나머지는 계산 후 하나씩 출력을 해줄것이다.

 

        for (int i = a; i <= b;) {
            if (i % 2 == 0)
                i += 3;
            else
                i *= 2;
            
            if (i <= b)
                System.out.print(i + " ");
        }

- a부터 b까지 돌도록 for문을 걸어준다

- 조건문으로 짝수일때는 3씩 증가시켜주고, 

  홀수일때는 2씩 곱해지도록 if문을 걸어준다.

- 그리고 이 코드대로라면 i가 증가된 상태로 출력이 되버리기 때문에

- 조건문으로 b를 넘지 않으면 출력하게 걸어준다.

반응형

+ Recent posts