10월 17일 개인공부

안효빈·2022년 10월 17일
0

개인 공부

목록 보기
28/36

코테쪼끔

프로그래머스 코테 [숫자 짝꿍]

import java.util.*;
class Solution {
    public String solution(String a, String s) {
        int[] c = new int[10];
		int[] d = new int[10];
		int[] f = new int[10];
		
		for(int i = 0; i < a.length(); i++) {
			if(a.charAt(i) == '0') {
				c[0]++;
			}else if(a.charAt(i) == '1') {
				c[1]++;
			}else if(a.charAt(i) == '2') {
				c[2]++;
			}else if(a.charAt(i) == '3') {
				c[3]++;
			}else if(a.charAt(i) == '4') {
				c[4]++;
			}else if(a.charAt(i) == '5') {
				c[5]++;
			}else if(a.charAt(i) == '6') {
				c[6]++;
			}else if(a.charAt(i) == '7') {
				c[7]++;
			}else if(a.charAt(i) == '8') {
				c[8]++;
			}else if(a.charAt(i) == '9') {
				c[9]++;
			}
		}
		
		for(int i = 0; i < s.length(); i++) {
			if(s.charAt(i) == '0') {
				d[0]++;
			}else if(s.charAt(i) == '1') {
				d[1]++;
			}else if(s.charAt(i) == '2') {
				d[2]++;
			}else if(s.charAt(i) == '3') {
				d[3]++;
			}else if(s.charAt(i) == '4') {
				d[4]++;
			}else if(s.charAt(i) == '5') {
				d[5]++;
			}else if(s.charAt(i) == '6') {
				d[6]++;
			}else if(s.charAt(i) == '7') {
				d[7]++;
			}else if(s.charAt(i) == '8') {
				d[8]++;
			}else if(s.charAt(i) == '9') {
				d[9]++;
			}
		}
		
		for(int i = 0; i < 10; i++) {
			if(c[i] <= d[i]) {
				f[i] = c[i];
			}else {
				f[i] = d[i];
			}
		}
		
		StringBuffer answer1 = new StringBuffer();
		
		for(int i = 9; i >=0; i--) {
			
			for(int t = 0; t < f[i]; t++) {
				answer1.append(i);
			}
		}
		
		String answer = answer1.toString();
		
		if(f[1]==0&&f[2]==0&&f[3]==0&&f[4]==0&&f[5]==0&&f[6]==0&&f[7]==0&&f[8]==0&&f[9]==0) {
			answer = "0";
			if(f[0]==0) {
				answer = "-1";
			}
		}
        return answer;
    }
}

+13점

숫자는 0~9까지밖에 없으니까 그냥 이프문 10개 작성하고 각각 숫자가 쓰인 횟수 조사

이중포문은 거의 안되고 1중포문은 중복되는 짝꿍 거르기 어려움, 걸러내도 시간초과가뜸


profile
다들 화이팅

0개의 댓글