본문 바로가기
Algorithm/Problem_프로그래머스

프로그래머스(문자열 내림차순으로 배치하기, 문자열 다루기 기본) - Java

by uyoo 2020. 5. 25.

[문자열 내림차순으로 배치하기]

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

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 �

programmers.co.kr

 

* 로직

  • s를 list에 담는다
  • list를 정렬 기준에 맞춰 정렬한다
  • answer에 답을 옮기고 출력한다

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

class Solution {
    public String solution(String s) {
        String answer = "";
        ArrayList<Character> list = new ArrayList<>();
        for(int i=0; i<s.length(); ++i) {
            list.add(s.charAt(i));
        }

        Collections.sort(list, new Comparator<Character>() {
            @Override
            public int compare(Character o1, Character o2) {
                return o2 - o1;
            }
        });

        for(char tmp : list) {
            answer += tmp;
        }

        return answer;
    }
}

 

 

[문자열 다루기 기본]

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

 

코딩테스트 연습 - 문자열 다루기 기본

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이��

programmers.co.kr

 

* 로직

  • 문자열의 길이가 4가 아니거나 6이 아니라면 false
  • 문자열 길이만큼 탐색할 때, 한 글자라도 숫자가 아니라면 false
  • 모든 조건을 통과하면 true

 

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        if(s.length() != 4 && s.length() != 6) return false;
        for(int i=0; i<s.length(); ++i) {
            if(s.charAt(i)-'a' >= 0) return false;
        }
        
        return answer;
    }
}