[알고리즘] 문자열(12) : 암호(replace(), parseInt(string,2)) (JAVA)

ho's·2022년 5월 18일
0

문제

풀이

    1. 7개단위로 문자를 몇개 보냈는지 입력받아야 한다.
      예를 들어 4를 입력했으면 총 28개의 #...## 가 생긴다.
    1. 입력한 문자열을 7개 단위로 잘라야한다.
    1. 7개 단위로 받아들인 문자열을 2진수로 바꾼다.
    1. 2진수로 바꾼 수를 char형태로 바꾼다.
    1. char형태를 String형식으로 바꾼다.

Main함수

public static void main(String[] args) throws IOException{
	Main T = new Main();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int n = Integer.parseInt(br.readLine());
    String str = br.readLine();
    System.out.println(T.solution(n,str));
}

정수값 n과, String을 받아들여서, Main클래스의 solution함수의 인자로 쓴다.

Main클래스

public String solution(int n, String s){
	String answer = "";
    for(int i=0;i<n;i++){
    	String tmp = s.substring(0,7).replace('#','1').replace('*','0');
    	
        int num = Integer.parseInt(tmp, 2);
        // String의 tmp를 2진수로 num에 저장한다.
        char b = (char) num;
        // int형식의 num을 char로 형변환해주고 b에 저장한다.
        answer += String.valueOf(b);
        // char형식의 b를 String형식으로 저장하고 answer에 저장한다.
        s = s.substring(7);
        // 문자열 s를 7개 단위로 자르고 s에 저장한다.
    
    }
    
    
    return answer;

}

소스코드

profile
그래야만 한다

0개의 댓글