반응형
안녕하세요. 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번 라인)
가장큰수인지 검증과 그렇지 않다면 그다음 큰 수로 만드는 방법에 대하여 적어본 뒤
코드를 작성한다면 그렇게 복잡한 로직 없이도 구현이 가능한 구현문제 였습니다.
반응형
'알고리즘 > LeetCode' 카테고리의 다른 글
LeetCode[Java] - Integer to Roman 풀이 (0) | 2021.04.03 |
---|---|
LeetCode[Java] - Median of Two Sorted Arrays 풀이 (0) | 2021.04.02 |
LeetCode[Java] - Longest Palindromic Substring 풀이 (0) | 2021.04.01 |
LeetCode[Java] - Longest Substring Without Repeating Characters 풀이 (0) | 2021.04.01 |
LeetCode[Java] - Add Two Numbers 풀이 (0) | 2021.04.01 |