ijm91   8년 전

우선 문자열을 입력 받고,

문자열을 0~입력받은문자열만큼 잘라서 배열에 넣어줍니다

baekjoon -> baekjoon , aekjoon, ekjoon ... 문제에 주어진대로..

그리고 각 문자열을 비교하는데, 당연히 swap을 해줍니다.

if(arr[i]> arr[i+1]

이런식으로 하는거랑, arr[i].substr(0,1) 맨앞자리를 비교하는거랑 결과값이 같길래, 그냥 배열끼리 비교를해줬습니다.

b>a 라고 인식하더라구요.

그래서 쭉 다 돌렸는데

뒤쪽에서 oon, on, n 부분에서 문제가 발생합니다.

oon 과 on 은 같기때문에 가만히있고, on과 n 이 마지막에 swap하고 종료하는데

저부분을 어떻게 처리해야할지 감이 안오네요... 접근자체가 잘못된건가요?

koosaga   8년 전

1. input.substr(i, length - i) 로 잘라야 합니다. 시작 위치 + 길이를 넣어줘야 해요

2. 정렬 알고리즘에 대해서 배워보세요. http://blog.eairship.kr/35

ijm91   8년 전

감사합니다 개념좀더 보고 다시 시도 해 보겠습니다~~

ijm91   8년 전

근데 input.substr(i, length-i) 를 하면

baekjoon -> aekjoo -> ekjo -> kj 가 되는거 아닌가요?? 

koosaga   8년 전

s.substr(i, l) 은 i ~ i + l - 1 이하의 인덱스를 가지는 부분문자열을 반환합니다.

댓글을 작성하려면 로그인해야 합니다.