본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1257 : 두 수 사이의 홀수 출력하기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1257 : 두 수 사이의 홀수 출력하기 (자바, JAVA)입니다.

Intro

Question

문제 설명

시작수와 마지막 수가 입력되면
시작수부터 마지막 수까지의 모든 홀수를 출력하시오.

입력

두 수 a, b 가 입력된다. ( a <= b )

출력

a~b의 홀수를 모두 출력한다.

예시

  • 입력 : 2 7
  • 출력 : 3 5 7

Solution (풀이)

  • 풀이 1 : 메모리 11172, 시간 68
public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        StringBuilder sb = new StringBuilder();

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        // 입력받은 a와 b의 숫자 만큼 for문 반복
        for (int i=a; i<=b; i++) {
            if (i%2==1) {    // %연산자를 통해서 홀수인지 판단
                sb.append(i + " ");    
            }
        }
        System.out.println(sb);
    }
}
  • 풀이 2 : 메모리 11176, 시간 94
public class Answer2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        StringBuilder sb = new StringBuilder();

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        // a와 b가 먼저 홀수 인지 판단(3항 연산자)
        a = a%2 == 1 ? a : a+1; // a가 홀수가 아닐때는 a 바로 다음 숫자부터
        b = b%2 == 1 ? b : b-1; // b가 홀수가 아닐때는 b 바로 전 숫자까지

        // 입력받은 a와 b의 숫자 만큼 for문 반복
        for (int i=a; i<=b; i+=2) {
            sb.append(i + " ");    
        }
        System.out.print(sb);
    }
}

Ranking(순위)

반응형