프로그래머스의 스택,큐 - 프린터 문제이다.
스택,큐 문제여서 스택을 이용하려하였다.
- enumerate와 foreach를 이용하여 딕셔너리로 만든다. [2,1,3,2] 였다면 [2: 3, 1: 1, 0: 2, 3: 2] 와 같이 만들어진다. 이 딕셔너리는 for문으로 값을 확인해보면 알수없는 순서로 출력된다.따라서 sorted로 키가 작은 순서대로 배열시킨다. (key: 0,1,2,3...)
신기했던것은 sorted의 결과값은 [(key 0, value 2), (key 1, value 1)....] 와 같이 나온다. 즉 타입이 이전과 달라진다. 그래서 dictionaryArray에 할당할 수 가없어서 새로운 변수를 만들었다.
sorted(by:{$0...})가 좀 복잡해보여서 더 간편한 함수가 있는지 보았다. key를 기준으로 배열하는 함수가 있을까..
위와같이 있긴한데 출력결과가 [1,2] 와 같이 키만 출력되어 사용할 수 없다.. 넘어가자..
- 문제에서 제시된 방향대로 코딩해보았다. 처음에,
if firstValue.value != sortedArray.max(by: {$0.value <= $1.value})!.value
.value 부분을 빼는 실수를 해서 계속 무한루프를 돌아 정지하지 않았다. 한시간정도 헤매다가..
이곳저곳에 print를 찍다가 오류원인을 찾게되었다. 내일은 다른 분들의 코드를 조사해봐야겠다.