Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • 코딩
  • Bakjoon
  • 코딩배우는 학생
  • 프로그래머스
  • Java
  • 레플릿
  • REPL
  • algorithm
  • 코딩배우는학생
  • Java tutorial
  • programmers
  • 백준
  • coding
  • 프로그래밍
  • AP CS A
  • 자바
  • auto-graded course
  • java basic
  • 알고리즘
  • repl.it

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

Algorithms/Programmers[Java]

[Programmers]문자열 내 마음대로 정렬하기 [Java]

2020. 7. 21. 20:22

문제 설명

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다.

 

제한 조건

  • strings는 길이 1 이상, 50이하인 배열입니다.
  • strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
  • strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
  • 모든 strings의 원소의 길이는 n보다 큽니다.
  • 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

입출력 예

strings n return
[sun, bed, car] 1 [car, bed, sun]
[abce, abcd, cdx] 2 [abcd, abce, cdx]

입출력 예 설명

입출력 예 1
sun, bed, car의 1번째 인덱스 값은 각각 u, e, a 입니다. 이를 기준으로 strings를 정렬하면 [car, bed, sun] 입니다.

입출력 예 2
abce와 abcd, cdx의 2번째 인덱스 값은 c, c, x입니다. 따라서 정렬 후에는 cdx가 가장 뒤에 위치합니다. abce와 abcd는 사전순으로 정렬하면 abcd가 우선하므로, 답은 [abcd, abce, cdx] 입니다.

 

문제설명

'정렬' 문제

 

Comparator를 통해서 배열 strings를 바로 받아와서 String o1과 o2를 비교한다. 문자열 위치비교이므로 charAt함수를 사용해 바로 (n)위치값을 비교해 주도록한다. 대신 같은 경우는 사전순 정렬이므로 o1과 o2자체를 사전순 정렬을(compareTo사용-문자열정렬) 해준다. 이외에는 오른쪽 반환 ㅇㅅㅇ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package algo;
import java.util.*;
import java.io.*;
 
public class Main {        
    public static String[] solution(String[] strings, int n) {       
 
        //정렬(
        Arrays.sort(strings,new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                if(o1.charAt(n)>o2.charAt(n)) {
                    return 1;
                }else if(o1.charAt(n)==o2.charAt(n)) {
                    return o1.compareTo(o2);
                }
                else {
                    return -1;
                }
                
            }        
        });
 
        return strings;
    }
    
    //문제풀이용 예시
    public static void main(String[] args) {
        String [] strings = {"abce", "abcd", "cdx"};
        int n=2;
        System.out.println(Arrays.toString(solution(strings, n)));
    }
}
 
 
 
 
 
 
 
 
 
 
cs

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

 

코딩테스트 연습 - 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1�

programmers.co.kr

 

반응형
저작자표시 (새창열림)

'Algorithms > Programmers[Java]' 카테고리의 다른 글

[Programmers] 가장 큰 수[Java]  (0) 2020.07.27
[Programmers] 실패율(2019 KAKAO BLIND RECRUITMENT)[Java]  (1) 2020.07.24
[Programmers] 폰켓몬(찾아라 프로그래밍 마에스터)[Java]  (0) 2020.07.21
[Programmers]소수 만들기 (Summer/Winter Coding(~2018))[Java]  (0) 2020.07.20
[Programmers]영어 끝말잇기(Summer/Winter Coding(~2018))[Java]  (0) 2020.07.20
    'Algorithms/Programmers[Java]' 카테고리의 다른 글
    • [Programmers] 가장 큰 수[Java]
    • [Programmers] 실패율(2019 KAKAO BLIND RECRUITMENT)[Java]
    • [Programmers] 폰켓몬(찾아라 프로그래밍 마에스터)[Java]
    • [Programmers]소수 만들기 (Summer/Winter Coding(~2018))[Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바