[ CodingTest ]/Baekjoon
[백준/ 18108번] 1998년생인 내가 태국에서는 2541년생?! (C / Java)
감자도리22
2023. 11. 22. 14:50
문제
ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.
불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.
입력
서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000)
출력
불기 연도를 서기 연도로 변환한 결과를 출력한다.

풀이(소스 코드)_C
#include <stdio.h>
int main() {
int y;
scanf("%d", &y);
printf("%d", y-543);
return 0;
}
풀이(소스 코드)_Java 풀이과정
// 오답코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("불기 연도를 입력하세요 : ");
int y = sc.nextInt();
int change = 543;
System.out.println(y-change);
}
}
서기연도로 변환해줄 숫자를 변수에 넣었더니 틀림
그래서 출력부분에서 543만 빼주었더니..! "불기 연도를 입력하세요 : " 이거 넣어줘서 틀림;;
결과적으로 맞은 코드는 아래와 같음
//정답코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
System.out.println(year - 543);
}
}
○ ○ ○
문제 풀면서 분명 입력값에 범위 조건이 붙음에도 풀이 식엔 조건 없이 단순(?)하게 생각하고 코딩하여도 통과된다.
아마 출력 결과 예시에 중점을 두어 문제를 풀기 때문인 것 같다.
728x90