본문 바로가기
IT 이야기/알고리즘

알고리즘 숫자 계산 수학 문제 C++ / Java / 파이썬

by youngmap 2023. 1. 9.
반응형

백준 18108번 : 1998년생인 내가 태국에서는 2541년생?! 풀어보면서 불기와 서기 연도 계산을 알아봅시다.

조금 생각을 해야 하는 알고리즘 숫자 계산 수학 문제가 나왔습니다.

 

 

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

 

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

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

www.acmicpc.net

 

 

문제 제목과 입출력 예제를 보니 불기 2541년은 서기 1998년이라고 합니다.
암산해보면 불기연도에서 -543을 하면 서기연도가 됩니다.
입력 조건값에 계산해봐도 음수가 나올리는 없어 보입니다. 
입력 조건 : 1000 <= y <= 3000

 

단순한 뺄셈 문제라고 생각하고 코드를 작성합니다.

 

1. C++

입력 조건에 y 라는 변수를 썼으니 변수이름 짓기는 고민 없이 y라고 했습니다.

#include <stdio.h>
int main(){
    int y;
    scanf("%d", &y);
    printf("%d", y-543);
    return 0;
}

 

2. JAVA

java 코드는 너무 길어요.

br.readLine()은 문자열을 리턴하므로 int로 형변환하는 과정이 필요합니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int y = Integer.parseInt(br.readLine());
		System.out.print(y-543);
	}
}

 

3. Python

java와 마찬가지로 입력받은 데이터를 int로 형변환 합니다.

print(int(input())-543)

 

반응형