본문 바로가기
알고리즘

[BOJ] 백준 1071번: 소트

by 강성주의 알고리즘 2020. 7. 16.

제 코드를 그대로 복사해서 제출하신 분들이 있어서 정답코드를 지웁니다. 

아래는 제 코드를 그대로 복사해서 제출한 목록입니다.

주석도 안지우고 그대로 제출하셨네요..

메모리 1984, 시간 0, 코드길이 1349

채점번호 21290911 (비공개), 22023209

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

 

1071번: 소트

N개의 정수가 주어지면, 이것을 연속된 두 수가 연속된 값이 아니게 정렬(A[i] + 1 ≠ A[i+1])하는 프로그램을 작성하시오. 가능한 것이 여러 가지라면 사전순으로 가장 앞서는 것을 출력한다.

www.acmicpc.net

이웃한 두 수가 연속되지 않는 (a[i] + 1 != a[i+1]) 인 사전순으로 가장 앞선 순열을 찾는문제.

주어진 입력을 정렬 후, 아래 규칙에 따라 값을 출력 (첨부된 전체 코드는 디버깅을 위해 배열에 저장한 코드)

현재 수 cur을 기준으로 이분탐색을 사용하여

cur과 연속인 수 cur+1이 없다면, 
	주어진 cur의 갯수만큼 cur을 출력
cur+1이 있다면
	cur+2 이상의 수 k 를 찾아
    k가 존재하는 경우
    	모든 cur을 출력
        + k 한번 출력
    k가 존재하지 않는 경우   
        cur+1 출력

 

위의 규칙을 그대로 구현하면 정답을 받으실 수 있습니다. 

 

/* 코드 삭제 */

 

반응형