Algorithm/백준

[백준 알고리즘] 1138번: 한 줄로 서기 (Python)

에릭 Kim 2023. 11. 6. 12:51
반응형

https://www.acmicpc.net/problem/1138

 

1138번: 한 줄로 서기

첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다

www.acmicpc.net

 

 

소스코드

 

 

풀이

★ 입력으로 키가 1인 사람부터 n인 사람까지 자신보다 앞에 있으면서, 키가 더 큰 사람의 수가 주어집니다 ! 그렇기에 키가 가장 큰 사람부터 자신 앞에 몇명이 존재하는지를 생각해보면 됩니다. 이때 insert() 함수를 사용하게 되는데, insert함수 insert(a,b)는 인덱스 번호 a자리에 b를 삽입시키는 기능을 가지고 있습니다.

 

★ 입력을 예시로 들었을 때,

 

2 1 1 0 이 들어오게 되고, 키가 n인 사람부터 자신 앞에 존재하는 더 키 큰 사람 수를 인덱스로 지정하여 insert 해주면

 

i가 4일 때, 키가 더 큰 사람은 0명이고, line이라는 배열의 0번째 자리에 insert 해줍니다.  line =  [4]

 

i가 3인 경우, 키가 더 큰 사람은 1명이고, 배열의 1번 자리에 insert 해줍니다. line = [4,3]

 

i가 2인 경우, 키가 더 큰 사람은 1명이고, 배열의 1번 자리에 insert 하는데, 기존에 인덱스 1을 가지고 있었던 값인 3은 insert로 인해 뒤로 밀리게 되고, 인덱스 번호 2를 가지게 됩니다. line = [4,2,3]

 

i가 1인 경우, 키가 더 큰 사람은 2명이고, 위와 같이 배열의 인덱스 번호 2번자리에 insert 해줍니다. line = [4,2,1,3]

반응형