본문 바로가기
프론트엔드/알고리즘

자바 JAVA | 백준 18108번 1998년생인 내가 태국에서는 2541년생?! | 불기 연도와 서기 연도 간의 변환 방법

by YUNI Heo 2022. 9. 20.
반응형

 

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

 

18108번: 1998년생인 내가 태국에서는 2541년생?!

ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국

www.acmicpc.net

 

✅ 문제

  • ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 
  • 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.
  • 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다.
  • 반면, 우리나라는 서기 연도를 사용하고 있다.
  • 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.
  • 시간 제한: 1 초 (추가 시간 없음)
  • 메모리 제한: 1024 MB

 

💡 입력

  • 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000)

 

💡 출력

  • 불기 연도를 서기 연도로 변환한 결과를 출력한다.

 

💡 예제 입력 1

2541

 

💡 예제 출력 1

1998

 

✅ 문제

💡 해결 계획

  • 2541년을 1998년으로 변경해 주기 위해 543년을 뺀 값을 구한다.
  • 구한 값을 출력한다.

 

💡 코드 1 (성공)

시간 복잡도는 O(1)이다.

  • 입력값을 하나만 받고 간단한 산술 연산으로 결과를 출력한다

 

입력값에서 543을 빼고 결과를 출력하는 간단한 코드이다.

 

import java.util.Scanner;

public class Main {
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in); // Scanner 객체 생성
		int n = sc.nextInt(); // 정수형 변수 n에 입력값 저장
		System.out.println(n - 543); // 입력값에서 543을 빼고 출력
	}
}

 

✅ 개념 정리

💡 불기 연도와 서기 연도 간의 변환

불기 연도는 석가모니가 열반한 해를 기준으로 연도를 세는데, 서기 연도에서 543년을 빼면 불기 연도가 된다는 점을 이용하여 변환할 수 있다.

반응형