1. 문제
https://www.acmicpc.net/problem/25314
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");
}
}
전체 코드는 위와같다.
'IT > BaekJoon' 카테고리의 다른 글
[백준/JAVA] 11021 A + B - 7 문제를 BufferedReader로 풀어보자! (0) | 2023.05.07 |
---|---|
[백준/JAVA] 15552번 '빠른 A+B' BufferedReader 설명 (0) | 2023.04.23 |
[백준/JAVA] 25304번 영수증 문제 (0) | 2023.04.09 |
[JAVA] 백준 8393번 합 문제 자세한 풀이 (0) | 2023.04.02 |
[JAVA] 10950번. A + B - 3 문제 (0) | 2023.03.28 |