본문 바로가기

TIL

23.07.24 - 백준 1193번 with Python

백준 1193번 문제


내가 문제를 읽고 분수가 차례대로 늘어나는 규칙은 위 그림과 같이 대각선으로 한 칸 밀면서 늘어나는 규칙인 줄 알았다. 그래서 규칙은 찾아냈고 코드를 작성하려 했는데 내 능력으론 구현이 안되어 검색을 했다.

그랬더니 충격적인 사실을 알아냈다.

애초에 내가 찾은 규칙부터 틀렸던 것이었다. 코드를 구현을 못한 걸 떠나 구현하였더라도 틀린 규칙을 코딩하고 있던 것이었다.


이 문제의 규칙은 대각선으로 첫 번째 라인에는 분수가 1개, 두 번째 라인에는 분수가 2개,... n번째 라인에는 분수가 n개 존재하고,

짝수 라인은 진행될수록 분자가 1씩 증가하고, 분모가 1씩 감소한다.

홀수 라인은 진행될수록 분자가 1씩 감소하고, 분모가 1씩 증가한다.

 

입력받은 수가 몇 번째 라인인지, 그 중에서 몇 번째 인덱스 인지를 찾아내면 된다.

 

X = int(input())

line = 0
end = 0

while X > end: # 입력받은 수가 라인들의 분수 개수보다 클 경우 
    line += 1 # 라인이 몇개인지 하나씩 센다.
    end += line # 라인이 늘수록 분수의 개수를 더한다.
    
diff = end - X # 입력받은 수와 분수의 수의 차를 구한다.

if line%2 == 0: # 짝수라인인 경우
    top = line - diff
    bottom = diff + 1
else: # 홀수라인인 경우
    top = diff + 1
    bottom = line - diff

print(f'{top}/{bottom}')

코딩 테스트

요즘 코테가 낮은 단계에서 술술 풀리던 문제들과 달리 한 문제, 한 문제 고심해도 풀지 못하는 경우가 많다.

문제를 풀기 위해 규칙을 찾아내는 과정, 찾아낸 규칙을 코드로 써가는 재미가 상당하다.

반대로 규칙이 안 찾아질 때, 찾은 규칙을 코드로 구현해내지 못할 때는 아쉬움이 크다.

그중 풀 수 있을 것 같은 간질간질한 느낌이 드는데, 이 문제만 잡고 있을 시간이 없어서 답을 찾을 때 가장 허탈한 기분이 든다.

 

오늘 문제가 그랬다. 규칙을 잘못 찾긴 했지만 잘못 찾은 규칙을 코드로 구현해 냈다면, 오류를 찾아냈을 것이고, 그랬다면 풀 수 있지 않았을까 하는 아쉬움이 든다. 아직은 코테가 많이 미숙하지만 꾸준히 공부하다 보면 못 푸는 문제보다 풀 수 있는 문제가 더 많아질 것이다.

데이터 베이스

DE 트랙으로 나눠지고 첫 수업, 첫 주제는 데이터 베이스에 대한 강의였다.

Database가 무엇인지, RDBMS와 NoSQL의 차이가 무엇인지에 등 이론에 관한 수업을 하고,

AWS에서 EC2 인스턴스를 생성하여 MySQL과 연동하는 부분까지 진행했다.

저번주에 AWS의 튜토리얼 수준을 들었는데 그것만으로도 따라가는데 충분하여 수업에 어려움은 없었다.

vim 에디터에 점점 흥미가 느껴지기도 한다. 

'TIL' 카테고리의 다른 글

23.07.26  (0) 2023.07.27
23.07.25 - 백준 2869번 with Python  (0) 2023.07.25
23.07.19 - 백준 2292번 with Python  (0) 2023.07.20
23.07.18  (0) 2023.07.19
23.07.17  (0) 2023.07.18