기본적인 알고리즘만 설명 드리자면 가능한 숫자의 종류를 생각합니다. 만약 1 1 1 1 2 2 2 3 3 3 이 주어진다면 가능한 숫자의 종류는 총 1, 2, 3으로 3개라고 생각을 합니다. 그리고 종류가 2개가 될 때까지 이전 수보다 1 큰 수가 아닌 수 중에서 가장 작은 수를 계속 뽑습니다. 그 후 숫자의 종류가 2개 남았을 경우 둘의 값을 비교하고 1차이라면 더 큰 숫자를 먼저 출력하고 그 뒤에 더 작은 숫자를 출력하는 방식으로 하였습니다. 주어진 test_case도 모두 맞고 질문에 기재된 반례 경우도 모두 맞았고 나름 만들어본 숫자가 하나인 경우, 랜덤으로 막 만든 경우 등 모두 만들어 봤는데 통과를 하는데 답을 내자마자 바로 '틀렸습니다'가 나오네요. 잘못된 부분 좀 알려주세요.
tagun11 4년 전
언어는 파이썬입니다.
기본적인 알고리즘만 설명 드리자면 가능한 숫자의 종류를 생각합니다. 만약 1 1 1 1 2 2 2 3 3 3 이 주어진다면 가능한 숫자의 종류는 총 1, 2, 3으로 3개라고 생각을 합니다. 그리고 종류가 2개가 될 때까지 이전 수보다 1 큰 수가 아닌 수 중에서 가장 작은 수를 계속 뽑습니다. 그 후 숫자의 종류가 2개 남았을 경우 둘의 값을 비교하고 1차이라면 더 큰 숫자를 먼저 출력하고 그 뒤에 더 작은 숫자를 출력하는 방식으로 하였습니다. 주어진 test_case도 모두 맞고 질문에 기재된 반례 경우도 모두 맞았고 나름 만들어본 숫자가 하나인 경우, 랜덤으로 막 만든 경우 등 모두 만들어 봤는데 통과를 하는데 답을 내자마자 바로 '틀렸습니다'가 나오네요. 잘못된 부분 좀 알려주세요.