코딩테스트/문제풀이

[Softeer] [21년 재직자 대회 예선] 전광판

알렉스 페레이라 2024. 5. 22. 13:40

간만에 문제풀이,,,

쉬운문제였는데 전광판 숫자 Map에서 5를 잘못입력해서 뭐가 틀렸는지 계속 찾느라 오래걸렸다..

하드코딩해야 하는 부분이 있다면 여러번 확인해서 확실히 할것..

 


내 소스

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
    	HashMap<Character, String> map = new HashMap<>();
        
        //전광판 숫자에 따른 불 ON/OFF
    	map.put('0', "1110111");
        map.put('1', "0010010");
        map.put('2', "1011101");
        map.put('3', "1011011");
        map.put('4', "0111010");
        map.put('5', "1101011");
        map.put('6', "1101111");
        map.put('7', "1110010");
        map.put('8', "1111111");
        map.put('9', "1111011");
        map.put(' ', "0000000");
    	
        Scanner sc = new Scanner(System.in);

        int t = sc.nextInt();
        String[] A = new String[t];
        String[] B = new String[t];
        
        for(int i = 0; i < t; i++) {
            A[i] = String.format("%5s", sc.next());
            B[i] = String.format("%5s", sc.next());
        }
        
        for(int i = 0; i < t; i++) {
        	int ret = 0;
        	for(int j = 0; j < 5; j++) {
        		ret += getCount(map.get(A[i].charAt(j)), map.get(B[i].charAt(j)));
        	}
        	System.out.println(ret);
        }
    }
    
    static int getCount(String a, String b) {
    	int ret = 0;
    	for(int i = 0; i < a.length(); i++) {
    		if(a.charAt(i) != b.charAt(i))ret++;
    	}
    	return ret;
    }
}

 


 

매우 쉬운 문제,,