문제 풀이 (JAVA)

import java.util.*;
class Solution {
    public String[] solution(String[] strings, int n) {
        List<String> list= new ArrayList<String>();
        for(int i=0; i<strings.length; i++){
            list.add(strings[i].charAt(n)+ strings[i]); // n번째 문자열 + 기존문자열을 붙힘으로써 정렬의 기준을 만든다. 제한조건.5 만족
        }
        Collections.sort(list); // 새로 만든 리스트 문자열을 정렬한다.
        String [] answer = new String[strings.length];
        for(int i=0; i<list.size(); i++){
            answer[i]=list.get(i).substring(1,list.get(i).length()); // 정렬시키기 위하여 붙였던 n 문자를 제외한 2번째 글자부터 정렬된 문자열을 가져온다.
        } 
        return answer;
    }
}

주요 핵심 포인트

1.  n번째 문자를 기준으로 정렬을 해야 하나, n번째 문자가 동일한 문자일 경우 n을 기준으로 정렬 후 기존 문자열끼리 정렬을 하여야 하는 문제가 있다. 따라서  n번째 문자를 기존 문자열 앞에 붙힘으로써 n을 기준으로 정렬하되 기존 문자열끼리의 정렬 또한 해결된다.

2. 정렬 후 정렬을 위해 쓰였던 첫번째 문자를 제외한 정렬된 기존 문자열을 가져와 저장한다.

'프로그래머스(JAVA)' 카테고리의 다른 글

나누어 떨어지는 숫자 배열  (0) 2022.04.24
두 정수 사이의 합  (0) 2022.04.24
문자열 내 p와 y의 개수  (0) 2022.04.17
문자열 내림차순으로 배치하기  (0) 2022.04.17
문자열 다루기 기본  (0) 2022.04.17

문제 풀이 (JAVA)

class Solution {
    boolean solution(String s) {
        boolean answer = true; // 기본 논리 변수 설정       
        String [] str= s.split(""); // 문자열의 문자를 하나씩 나누어 배열에 저장
        int pcnt=0; // p의 개수 카운트
        int ycnt=0; // y의 개수 카운트
        for(int i=0; i<str.length; i++){
            if("p".equals(str[i]) ==true || "P".equals(str[i])==true){
                pcnt++; // 소문자 p 또는  대문자 P라면 p의 개수 카운트 증가
            }
            if("y".equals(str[i])==true || "Y".equals(str[i])==true){
                ycnt++; // 소문자 y 또는 Y 라면 y의 개수 카운트 증가
            }
        }
        if(pcnt!=ycnt){ // p와 y의 문자 개수가 다를 경우 false 리턴
            answer=false;
        }      
        return answer;
    }
}

주요 핵심 포인트

1.  split을 사용해 문자열을 문자배열로 변환하였다.

2.  equals를 사용하여 문자열이 같은지 비교하였다.

 

'프로그래머스(JAVA)' 카테고리의 다른 글

두 정수 사이의 합  (0) 2022.04.24
문자열 내 마음대로 정렬하기  (0) 2022.04.24
문자열 내림차순으로 배치하기  (0) 2022.04.17
문자열 다루기 기본  (0) 2022.04.17
서울에서 김서방 찾기  (0) 2022.04.17

문제 풀이 (JAVA)

class Solution {
    public String solution(String s) {
        String answer = "";
        char [] ch = new char[s.length()];
        ch=s.toCharArray();
        char temp;
        for(int i=0; i<s.length(); i++){ // 문자열의 길이만큼 i 증가
            char max= ch[i]; // 가장 큰 숫자는 i번째 수로 초기화
            for(int j=i+1; j<s.length(); j++){ // i+1 부터 숫자 비교
                if(max <ch[j]){ // 가장 큰 숫자 max보다 다음 배열이 더 클 경우 i번째 값과 j번째 값을 교체한다.
                    max=ch[j]; 
                    temp = ch[i];
                    ch[i]=ch[j];
                    ch[j]=temp;
                }
            }
            answer+=ch[i]; // 가장큰 숫자로 판별된 i번째 숫자를 문자열에 입력한다.
        }
        return answer;
    }
}

주요 핵심 포인트

1.  문자열을 문자배열로 변환하였다.

2. max 값을 i번째 배열로 설정하여 선택 정렬 알고리즘을 사용하여 값을 교체하였다.

 

정렬 알고리즘 참조 사이트

https://hsp1116.tistory.com/33

출처 : 화투의 개발 블로그 

'프로그래머스(JAVA)' 카테고리의 다른 글

문자열 내 마음대로 정렬하기  (0) 2022.04.24
문자열 내 p와 y의 개수  (0) 2022.04.17
문자열 다루기 기본  (0) 2022.04.17
서울에서 김서방 찾기  (0) 2022.04.17
소수 찾기  (0) 2022.04.17

문제 풀이 (JAVA)

class Solution {
    public boolean solution(String s) {
        boolean answer = true; // 리턴 논리 변수 선언
        char  [] ch = new char[s.length()]; // 문자열 길이만큼 문자 배열 선언
        ch=s.toCharArray(); // 문자열 -> 문자배열 변환하여 저장
        int cnt=0;
        for(int i=0; i<s.length(); i++){
            for(int j=0; j<=9; j++){
                answer = (Integer.toString(j).charAt(0)==ch[i]) ? true :false; // 숫자 j를 문자로 변환하여 문자배열과 비교하여 숫자이면 0~9사이 숫자이면 true , 숫자가 아닐경우 false 반환
                if(answer==true){ // 숫자일경우 cnt 카운트 1 증가
                    cnt++;
                    break;
                }
            }
        }
        boolean result = (cnt==ch.length && ch.length==4 ||ch.length==6) ? true : false; // 숫자 카운트 cnt가 문자배열의 길이와 같다면 숫자로만 이루어져 있는것이며, 길이가 4 또는 6일 경우에만 true이고 나머지는 false를 리턴한다.
        return result;
    }
}

주요 핵심 포인트

1. 들어온 문자열을 문자배열로 변환하였다.

2. 이중 for문을 돌려 문자배열 하나씩 0~9사이 숫자 문자인지 파악하여 동일하면 true 카운트를 증가시켰다.

3. true 카운트가 문자배열의 길이와 동일하면 숫자로만 이루어져 있는 문자열이다.

'프로그래머스(JAVA)' 카테고리의 다른 글

문자열 내 p와 y의 개수  (0) 2022.04.17
문자열 내림차순으로 배치하기  (0) 2022.04.17
서울에서 김서방 찾기  (0) 2022.04.17
소수 찾기  (0) 2022.04.17
수박수박수박수박수?  (0) 2022.04.16

+ Recent posts