[문제]
reverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요.
str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
예를들어 str이 Zbcdefg
면 gfedcbZ
을 리턴하면 됩니다.
[내 문제 풀이]
public class ReverseStr { public String reverseStr(String str) { String result =""; int x = str.length(); char[] ar = new char[x]; for (int i = 0; i < x; i = i + 1) { ar[i] = str.charAt(i); } for (int i = 0; i < x; i = i + 1) { for (int j = 1+i; j < x ; j = j + 1) { if (ar[i] < ar[j]) { char temp = ar[i]; ar[i] = ar[j]; ar[j] = temp; } } } for(int i = 0; i<x; i=i+1) { result = result + ar[i]+""; } return result; } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { ReverseStr rs = new ReverseStr(); System.out.println(rs.reverseStr("Zbcdefg")); } }
[다른 분 문제 풀이]
import java.util.Arrays;
public class ReverseStr {
public String reverseStr(String str){
// toCharArray로 배열로 변환
char[] sol = str.toCharArray();
Arrays.sort(sol);
return new StringBuilder(new String(sol)).reverse().toString();
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
[버블정렬]
public class ReverseStr {
public String reverseStr(String str){
char[] chars = str.toCharArray();
char temp =' ';
for(int i = 0; i < str.length(); i++){
for(int j = 0; j < str.length()-1 ; j++){
if( chars[j] < chars[j+1]){
temp = chars[j];
chars[j] = chars[j+1];
chars[j+1] = temp;
}
}
}
str = new String(chars, 0, chars.length);
return str;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println( rs.reverseStr("Zbcdefg") );
}
}
'알고리즘' 카테고리의 다른 글
서울에서김서방찾기 (0) | 2018.02.22 |
---|---|
수박수박수박수박수박수? (0) | 2018.02.22 |
가운데 글자 가져오기 (0) | 2018.01.23 |
<공부가 더필요 > 삼각형 출력하기 (0) | 2018.01.21 |
역삼각형 출력하기 (0) | 2018.01.14 |