백준

백준 1193 문제풀이 [python]

ys.k 2023. 6. 22. 03:27

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

원래 오늘 11번가 코딩테스트가 있었다.

 

입사하려고 지원한 건 아니고, 그냥 지원만 하면 코딩테스트를 볼 수 있다길래 지원했다.

 

코딩테스트 시간이 다가오니, 알아둬야 할 점이 있나 유튜브에 검색했다.

 

첫 번째 영상을 시청했다.

 

두 가지를 배웠다.

1. 문제 읽자마자 코드 작성하지 말고, 머릿속에 정리한 후에 타이핑해라.

2. 다 풀었다고 일어나지 마라, 반례를 찾아라였다.

 

나는 1번 항목을 무시했었다.

 

그래서 이번 문제를 풀 때는, 문제 다 읽고 이해가 끝났을 때 코딩을 시작했다.

 

뭔가 머릿속에 정리가 된 걸 타이핑하는 느낌이랑, 그냥 일단 간단한 입력이라도 구현해놓는 거와 차이를 느꼈다.

 

내가 나아갈 방향성에 더 집중되는 느낌이었다.

 

문제는 금방 풀었고, 제출했다.

 

틀렸다.

뭐가 문제일까, 다시 많은 고민을 했다.

 

그러다 출력을 다시 확인해 보았다.

 

두 수와 슬래쉬 사이에 공백이 없다.

 

이 공백을 해결하는 게 이번 문제의 핵심이었다.

 

코드

import sys as s

x = int(s.stdin.readline())
count = 0
for i in range(1,x+1):
    if x > i :
        x -= i
        count += 1
    else:
        if count % 2 == 0 :
            print(str(count-x+2)+'/'+str(x))
            break
        else:
            print(str(x)+'/'+str(count -x+2))
            break

 

배운 점

1. 코딩하기 전, 문제에 대해 완벽히 이해하고 알고리즘을 생각한 후 시작하는 것이 훨씬 빠르고 정확하다.