IT/BaekJoon

[백준/JAVA] 25314번 '코딩은 체육과목 입니다' 쉬운 풀이 설명

Buang 2023. 4. 23. 20:54
반응형

1. 문제

https://www.acmicpc.net/problem/25314

 

25314번: 코딩은 체육과목 입니다

오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++

www.acmicpc.net

 


2. 풀이

 

4 바이트일 땐 long int

8 바이트일 땐 long long int

12 바이트일 땐 long long long int

 

가 나오도록 해야한다.

 

일단 long 뒤에 있는 int는 잠시 떼어두고 long만 봤을 때

4의 배수 가령 4, 8, 12, 16 이렇게 4씩 증가할 때 마다

long도 한 개씩 증가하는 걸 볼 수 있다.

 

4일 땐 long 한 개, 8일 땐 long 두 개, 12일 땐 long 3개인 식이다.

 

이를 통해 알 수 있는 건

사용자가 입력한 값에서 4를 나눠준 후

나오는 몫을 사용해서 풀 수 있는 문제란 점이다.

 

예시로 사용자가 8을 입력했을 때 이 8을 4로 나눠주면 몫이 2이다. 

여기서 나온 몫 2를 통해 long을 2번 출력해줘!라고 코드를 짤 수 있다.

 

Scanner scan = new Scanner(System.in);
int num = scan.nextInt(); // 숫자 입력
scan.close();

// 사용자가 4를 입력했다면 long 1개, 8을 입력했다면 long 2개를 출력하도록 한다.
for (int i=0; i<num/4; i++) { // 
    System.out.print("long "); //long 바로 뒤에 int가 나와야 함으로 println이 아닌 print 작성
}

 

코드를 살펴보면 위와같다.

scanner를 통해 사용자가 입력한 값을 받고

그 값을 num 변수에 저장해준다. 내가 8이라고 입력했다면

이 8이 num 변수 안에 저장된다.

 

그리고 for문에서 i<num/4; 를 작성해서 사용자가 입력한 값을

4로 나눠준 뒤 나온 값, 즉 몫 값만큼 반복문을 돌려주는 코드다.

 

내가 8을 입력했고, 이 8을 4로 나눠줬으니 2가 나온다.

for문이 총 2번 반복되는 것이고, long도 두 개가 출력된다.

 

        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt(); // 숫자 입력
        scan.close();

        // 사용자가 4를 입력했다면 long 1개, 8을 입력했다면 long 2개를 출력하도록 한다.
        for (int i=0; i<num/4; i++) { //
            System.out.print("long "); //long 바로 뒤에 int가 나와야 함으로 println이 아닌 print 작성
        }
        System.out.println("int");
    }
}

마지막에 int를 붙여줘야 하니

for문 바깥에 문자열 int가 출력되도록 작성해줬다.

 

순서를 정리하자면 아래와 같다.

 

프로그램 순서

 

1. 사용자로부터 값 입력받기

 

2. 사용자가 입력한 값을 4로 나눈 뒤 나온 몫만큼 반복문 돌려주기

- 반복문 돌 때 마다 long 출력하기

 

3. 반복문이 끝난 후 마지막에 int 붙여주기

 

 

3. 코드

 

import java.util.Scanner;

public class Main {

    public static void main ( String[] args ) {

        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt(); // 숫자 입력
        scan.close();

        // 사용자가 4를 입력했다면 long 1개, 8을 입력했다면 long 2개를 출력하도록 한다.
        for (int i=0; i<num/4; i++) { //
            System.out.print("long "); //long 바로 뒤에 int가 나와야 함으로 println이 아닌 print 작성
        }
        System.out.println("int");
    }
}

 

 

전체 코드는 위와같다.

반응형