코딩테스트 (C#)

백준 18108 : 1998년생인 내가 태국에서는 2541년생? - C# 풀이

UniCoti-sub 2024. 7. 14.
반응형

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

문제 사진

 

이번 문제는 매우 직관적이었던 앞선 기초 문제들과 조금 달리 불기 연도라는 개념이 등장하는데,

이 말 자체를 처음 들어본다면 불기 연도에 대해서 찾아보는 경우도 있을 것 같다.

하지만 불기 연도와 서기 연도의 변환법을 모르더라도 풀 수 있는데,

예제 입력을 보고 일반화시키면 된다.

 

예제 입출력

2541을 넣었을 때 1998이 나와야 한다면, 1년 후인 2542년에는 1999라는 값이 나와야 한다.

이때 두 년도의 차는 항상 같아야 하기에 (2541-1998), 즉 543을 빼주고 출력하면 된다.

 

using System;

namespace unicoti {
    class program {
        static void Main() {
            string input = Console.ReadLine();
            int year = int.Parse(input);
            
            Console.WriteLine(year-543);
        }
    }
}

 

이렇게 표현해 줄 수 있다.

불기 연도를 문자열 형태로 입력받고, 정수형으로 변환해 주고,

서기 연도로 변환해 주기 위해서 543을 뺀 후 출력해 주면 된다.

기초지식이 없어도 입출력을 보고 일반화한 예시이다.


오늘의 느낀 점)

일단 일반화에 성공해서 뿌듯하고, 그럼에도 쉬운 문제여서 성취감은 들지 않는다.

그리고 어려운 문제를 풀 때는 단계별로 설명이 가능해서 제목처럼 큰 폰트를 사용해서

목차를 만들기 용이했는데 이 정도 문제들은 글 형식이 매번 바뀌는 듯하다.

 

문제 자체가 쉬운 편이라서 느낀 점이 많지는 않다.

단계별로 푸는 곳에 들어가 보면 유형별로 나뉘어 있는데,

바쁘지만 않다면 한 "챕터"를 하루의 목표로 삼는 것도 나쁘지 않아 보인다만

블로그에 글을 남기면서 하기에는 무리가 있어 보인다.

 

자기 계발 경험상 목표가 너무 커도 쉽게 포기하게 되니 지금처럼

쉬운 문제는 2-3개 정도씩, 어려운 문제는 1문제씩이라도 꾸준히 풀길 바란다.


이상으로 도움이 되었길 바라며,


끝.

반응형

댓글