[python_파이썬_Pass]백준_2947번_나무 조각_시뮬레이션_풀이
2024. 8. 26. 20:03ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/WSAIqn6prZQ?feature=shared
회사 점심시간을 활용해 해결했다.
<첫번째 시도 : 틀렸습니다.>
마지막 print할때 리스트로 출력하는 기초적인 실수....
import sys
input = sys.stdin.readline
nums = list(map(int, input().split()))
answer = [1, 2, 3, 4, 5]
while nums != answer:
for i in range(5 - 1):
if nums[i] > nums[i + 1]:
x, y = nums[i], nums[i + 1]
nums[i], nums[i + 1] = y, x
print(nums)
<두번째 시도 : 맞았습니다.>
순서가 맞지 않으면 다시 1단계로 가야하기 때문에 while문으로 해서 반복하는 코드를 구현했다.
import sys
input = sys.stdin.readline
nums = list(map(int, input().split()))
answer = [1, 2, 3, 4, 5]
while nums != answer:
for i in range(5 - 1):
if nums[i] > nums[i + 1]:
x, y = nums[i], nums[i + 1]
nums[i], nums[i + 1] = y, x
print(*nums)
<다른 사람 풀이 참고>
나와 방향은 비슷하지만 while문 안에 if문과 break를 통해 루프를 종료할 수 있기 때문에 내 코드보다 효율적이다.
num = list(map(int, input().split()))
while True:
for i in range(len(num) - 1):
if num[i] > num[i+1]:
num[i], num[i+1] = num[i+1], num[i]
print(" ".join(map(str, num)))
if num == [1, 2, 3, 4, 5]:
break
728x90
반응형
'코드리뷰' 카테고리의 다른 글
★복습필요[python_파이썬_Half Pass]백준_1182번_부분수열의합_백트래킹_풀이 (0) | 2024.09.02 |
---|---|
[python_파이썬_Fail_미해결]백준_14888번_연산자 끼워넣기_백트레킹_풀이 (0) | 2024.08.26 |
[python_파이썬_Pass]백준_1547번_공_시뮬레이션_풀이 (0) | 2024.08.26 |
[python_파이썬_Pass]백준_15652번_N과 M(4)_백트래킹_풀이 (0) | 2024.08.25 |
[python_파이썬_Pass]백준_15651번_N과 M(3)_백트래킹_풀이 (0) | 2024.08.25 |