SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
<나의 풀이>
문제만 읽어보았을 때, 단순하게 P - K + 1을 하면 되는 것 아닌가 하는 생각이 들었다.
그러나 이는 P가 K보다 크거나 같을 때(P>=K)만 사용이 가능한 식이다.
주어진 테스트 케이스는 이것에 해당하기 때문에 단순하게 저 식만 작성해주면 문제는 통과하지만,
문제의 진정한 의미는 P가 K보다 작을 때도 고려해야 한다고 생각한다.
예를 들어서 P가 100이고 K가 123인 경우, (P <K)
123부터 999까지 탐색을 하고, 다시 000부터 100까지 탐색을 해야 한다.
일단 ~때와 ~때를 각각 고려해야 하기 때문에 조건문을 활용하면 될 듯하다.
이때 입력받는 두 가지 값은 정수이며 각각 P와 K이다.
P , K = map(int, input().split())
if P >= K:
print(P-K+1)
else:
print(?)
이제 P <K일 경우, P에 999를 더해주고 K를 뺀 후 1을 더해주면 된다.
따라서 완성된 코드는 다음과 같다.
P , K = map(int, input().split())
if P >= K:
print(P-K+1)
else:
print(P+1000-K)
이를 반복문을 활용하여 카운트하는 방법도 보았는데, 코딩적으로(?) 접근한 것이 인상적이었다.
나는 아직 문제 풀이를 할 때 수학적 연산 방법을 위주로 접근하는데, 반복문을 활용했다는 것에 반성하게 되었다.
조금 더 파이썬 문법을 활용하여 풀이해보려고 노력해보자!
'개발 > SWEA (D1) 문제 풀이' 카테고리의 다른 글
SW Expert Academy - 2047. 신문 헤드라인(D1) (0) | 2022.11.10 |
---|---|
SW Expert Academy - 2046. 스탬프 찍기(D1) (0) | 2022.11.10 |
SW Expert Academy - 2029. 몫과 나머지 출력하기(D1) (0) | 2022.11.08 |
SW Expert Academy - 2027. 대각선 출력하기(D1) (0) | 2022.11.04 |
SW Expert Academy - 2025. N줄덧셈(D1) (0) | 2022.11.04 |
댓글