반응형
https://www.acmicpc.net/problem/17299
소스코드
풀이
★ 딕셔너리를 사용하여 입력받은 배열 안의 수가 몇번 나오는지 확인해줍니다.
ex) a = [1,1,2,3,4,2,1] => {1: 3, 2: 2, 3: 1, 4: 1}
★ 정답을 저장하는 배열 ans는 -1로 초기화 하는데, 만약 해당 수의 오등큰수가 없다면 -1이 출력되어야 하기 때문입니다.
★ 입력받은 배열을 읽으면서 stack의 최상단의 값이 딕셔너리 안에 가지고 있는 수가 해당 값의 수보다 작을 때 stack안의 수는 pop되고, 반복문을 돌던 수가 stack의 최상단 수의 오등큰수이기 때문에 그 수를 정답을 출력하는 리스트인 ans에 저장해줍니다 !
★ 이 때 인덱스를 사용하는 이유는 배열의 위치에 맞게 값을 넣어줘야 하기 때문입니다 !
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 알고리즘] 2161번: 카드1 (Python) (0) | 2023.06.06 |
---|---|
[백준 알고리즘] 1072번: 게임 (Python) (0) | 2023.06.06 |
[백준 알고리즘] 2470번: 두 용액 (Python) (0) | 2023.06.06 |
[백준 알고리즘] 10815번: 숫자카드 (Python) (0) | 2023.06.05 |
[백준 알고리즘] 1920번: 수 찾기 (Python) (0) | 2023.06.05 |