[프로그래머스] 131128번 - 숫자 짝꿍 [Java]

2026. 6. 8. 11:09·프로그래머스
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 


 

 

문제

 

 

제출한 코드

class Solution {
    public String solution(String X, String Y) {
        
        int[] xArr = new int[10];
        for (String x : X.split("")) {
            xArr[Integer.parseInt(x)]++;
        }
        
        int[] yArr = new int[10];
        for (String y : Y.split("")) {
            yArr[Integer.parseInt(y)]++;
        }
        
        StringBuilder sb = new StringBuilder();
        
        for (int i = 9; i >= 0; i--) {
            while (xArr[i] > 0 && yArr[i] > 0) {
                sb.append(i);
                xArr[i]--;
                yArr[i]--;
            }
        }
        
        if (sb.length() == 0) return "-1";
        if (sb.charAt(0) == '0') return "0";
        
        return sb.toString();
    }
}

 

 

풀이

처음에는 이중으로 for문을 사용하여 문제를 풀었으나 일부 테스트 케이스가 시간초과가 돼서 통과를 못했다.

시간복잡도를 O(n) 으로 줄이기 위해 for문을 한 번만 사용하는 방식으로 다시 풀어서 제출했다.

 

먼저 문자열 X에서 한 자리씩 비교하여 해당 숫자의 index 자리에 있는 xArr를 1씩 증가시키도록 했다.

문자열 Y도 동일한 방식으로 yArr에 해당 자리의 숫자를 1씩 증가했다.

 

가장 큰 정수를 반환해야 하므로 맨뒤에서부터 시작하여, xArr와 yArr 모두 해당 인덱스의 숫자가 0 초과일 때까지, StringBuilder에 해당 숫자를 append 하고, 해당 자리의 숫자를 1 감소시켰고, 

이렇게 해서 만들어진 sb를 반환하도록 했다.

 

만약 만들어진 StringBuilder의 문자열의 길이가 0이라면 짝꿍이 존재하지 않으므로 "-1"을,

문자열이 '0' 으로 시작하면 짝꿍이 0으로만 구성되어 있으므로 "0"이 반환된다.

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

[프로그래머스] 42862번 - 체육복 [Java]  (0) 2026.06.09
[프로그래머스] 133499번 - 옹알이 (2) [Java]  (0) 2026.06.05
[프로그래머스] 77484번 - 로또의 최고 순위와 최저 순위 [Java]  (0) 2026.06.04
[프로그래머스] 136798번 - 기사단원의 무기 [Java]  (0) 2026.06.02
[프로그래머스] 159994번 - 카드 뭉치 [Java]  (0) 2026.05.22
'프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 42862번 - 체육복 [Java]
  • [프로그래머스] 133499번 - 옹알이 (2) [Java]
  • [프로그래머스] 77484번 - 로또의 최고 순위와 최저 순위 [Java]
  • [프로그래머스] 136798번 - 기사단원의 무기 [Java]
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    til
    티스토리스킨
    내일배움캠프
    jdk삭제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[프로그래머스] 131128번 - 숫자 짝꿍 [Java]
상단으로

티스토리툴바