백준 알고리즘 2947번
2947번: 나무 조각
첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다.
www.acmicpc.net
2947번
나무 조각에 쓰여있는 수가 순서대로 들어온다.
들어온 순서를 정해진 과정을 적용하면서 1, 2, 3, 4, 5로 만들면 된다.
정해진 과정을 거치면서 바뀌는 조각의 순서를 출력하면 된다.
#정해진 과정
1. 첫 번째 조각의 수가 두 번째 수보다 크면, 둘의 위치를 서로 바꾼다.
2. 두 번째 조각의 수가 세 번째 수보다 크면, 둘의 위치를 서로 바꾼다.
3. 세 번째 조각의 수가 네 번째 수보다 크면, 둘의 위치를 서로 바꾼다.
4. 네 번째 조각의 수가 다섯 번째 수보다 크면, 둘의 위치를 서로 바꾼다.
5. 만약 순서가 1, 2, 3, 4, 5 순서가 아니라면 1단계로 간다.
문제 해결
입력을 받아서 정해진 과정을 순서대로 if문으로 통과시켰다.
정말 저 과정을 코드로 구현하면 된다!!!
코드
def main():
data = list(map(int, input().split()))
answer = [1, 2, 3, 4, 5]
while(True):
if data[0] > data[1]:
data = change(data, 0)
if data[1] > data[2]:
data = change(data, 1)
if data[2] > data[3]:
data = change(data, 2)
if data[3] > data[4]:
data = change(data, 3)
if data == answer:
break;
def change(data, n):
temp = data[n]
data[n] = data[n+1]
data[n+1] = temp
print(" ".join(str(e) for e in data))
return data
if __name__ == '__main__':
main()
728x90
'Algorithm' 카테고리의 다른 글
백준 알고리즘 <DFS와 BFS> (0) | 2021.01.26 |
---|---|
백준 14503번 <로봇 청소기> (0) | 2021.01.17 |
백준 1931번 <회의실 배정> (0) | 2021.01.13 |
백준 11399번 <ATM> (0) | 2021.01.12 |
백준 11047번 <동전 0> (0) | 2021.01.09 |
댓글