본문 바로가기

Algorithm/Algospot

[algospot]LECTURE

문제

https://algospot.com/judge/problem/read/LECTURE

소녀시대대학 교수님게서 요청하십니다. 재귀와 정렬알고리즘 수업에 사용할 예제가 필요하답니다. 마..만들어드려야지요

아래는 요청한 프로그램 작동방법~

abbaaccb → ab ba ac cb → ab < ac < ba < cb → abacbacb

1. 2n개의 문자를 입력받아서 n개의 substrings으로 나눈다.

2. n개의 substrings에 대한 정렬한다. 

3. 결과출력.

 

입력

문자열은 소문자이고 1000자가 넘지 않는다.

 

출력

정렬된 문자열

 

풀이

입력받은 문자열을 한글자씩으로 나눈뒤에 앞글자에대한 정렬을 한다.같으면 뒷글자로정렬~

 

package com.tutorial;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class LECTURE {
    public static void main(String[] args)throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System. in));
        int cnt = Integer.parseInt(br.readLine());
        while (cnt -- > 0) {
            String str = br.readLine();
            char[] arr = str.toCharArray();
            char temp;
            for (int i = 0; i < arr.length; i += 2) {
                for (int j = i + 2; j < arr.length; j += 2) {
                    if (arr[i] > arr[j] || (arr[i] == arr[j] && arr[i + 1] > arr[j + 1])) {
                        temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                        temp = arr[i + 1];
                        arr[i + 1] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            System.out.println(arr);
        }
    }
}

 

'Algorithm > Algospot' 카테고리의 다른 글

[algospot]MISPELL  (0) 2014.12.11
[algospot]ENCRYPT  (0) 2014.12.11
[algospot]ENDIANS  (0) 2014.12.11
[algospot]MERCY  (0) 2014.12.11
algospot start  (0) 2014.12.11