본문 바로가기

Programmers

[JAVA] Lv.1 문자열 내 마음대로 정렬하기

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제

strings의 원소들의 각 n번째 글자를 비교하여 알파벳 순서대로 정렬하여 반환하는 문제입니다

단, n번째 글자가 같을 경우 해당하는 두 원소를 사전 순으로 정렬해야 합니다

 

 

 

풀이

1. strings 배열 두 문자열의 n번째 글자의 아스키코드 값을 비교

2. 뒷 글자가 더 작다면 두 배열의 위치를 바꾼다

3. 뒷 글자와 동일하면 n번째 이후 글자들을 정렬 후 배열의 위치를 바꿈

 

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        String[] str = new String[2];
        int m = 0;
        String temp = "";
        
        for (int j=0; j<strings.length; j++) {
            for (int i=j+1; i<strings.length; i++) {
                
                if (Integer.valueOf(strings[j].charAt(n)) > Integer.valueOf(strings[i].charAt(n))) {
                    temp = strings[j];
                    strings[j] = strings[i];
                    strings[i] = temp;
                }
                
                else if (Integer.valueOf(strings[j].charAt(n)) == Integer.valueOf(strings[i].charAt(n))) {
                    str[0] = strings[j];
                    str[1] = strings[i];
                    Arrays.sort(str);
                    strings[j] = str[0];
                    strings[i] = str[1];
                }
            }
        }

        return strings;
    }
}

'Programmers' 카테고리의 다른 글

[JAVA] Lv.1 명예의 전당 (1)  (0) 2024.04.03
[JAVA] Lv.1 추억 점수  (0) 2024.04.03
[JAVA] Lv.1 [1차] 비밀지도  (0) 2024.03.31
[JAVA] Lv.1 콜라 문제  (0) 2024.03.31
[JAVA] Lv.1 수박수박수박수박수박수?  (0) 2024.03.26