알고리즘/LeetCode

LeetCode[Java] - Next Permutation 풀이

곤정이 2021. 4. 6. 23:13
반응형

안녕하세요. Ruk 입니다.

Medium난이도의 Next Permutation 문제에 대하여 접근과 풀이를 한번 해보려고 해요.

 

문제를 보면 조건은 단간합니다. 배열로 숫자를 입력 받았을 때

그다음 큰 수로 변환, 최대값이면 정렬 입니다.

1,2,3,4,5,6,7 -> 1,2,3,4,5,7,6 인 것 이죠.

 

어떻게 알고리즘을 짜볼지는 간단하게 정했습니다.

1. for문으로 length의 길이부터 숫자가 커지는지 체크합니다. (7번 라인)

2. 커지지 않는 부분이 있다면 point를 체크, 없다면 정렬 후 리턴. (14번 라인)

3. for문을 다시 돌며 point 보다 큰 숫자를 찾습니다. (18번 라인)

4. 해당 숫자를 스왑 시켜주고(20번 라인), 뒷부분을 정렬하여 가장 작을수로 만들어줍니다.(21번 라인)

 

가장큰수인지 검증과 그렇지 않다면 그다음 큰 수로 만드는 방법에 대하여 적어본 뒤

코드를 작성한다면 그렇게 복잡한 로직 없이도 구현이 가능한 구현문제 였습니다.

 

반응형