백준
백준 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. 코딩하기 전, 문제에 대해 완벽히 이해하고 알고리즘을 생각한 후 시작하는 것이 훨씬 빠르고 정확하다.