반응형
암호는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. #은 이진수의 1로, *이진수의 0으로 변환합니다
그리고 바뀐 2진수를 10진수화 합니다. 그 다음 10진수화 한것을 아스키 번호로 변환하는 알고리즘 문제입니다.
import java.util.Scanner;
public class Main {
public String solution(int n, String s) {
String answer = "";
for (int i = 0; i < n; i++) {
// 0번째부터 6번째까지 자르고 변환합니다.
String tmp = s.substring(0,7).replace('#','1').replace('*','0');
// 2진수를 10진수로 변환합니다.
int num = Integer.parseInt(tmp, 2);
// 10진수를 영단어로 변환합니다.
answer += (char)num;
// 7번부터 다시 대입합니다.
s = s.substring(7);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str = sc.next();
System.out.println(T.solution(n, str));
}
}
반응형
'Algorithm > Java알고리즘 문제풀이 & Kotlin' 카테고리의 다른 글
[Algorithm] 보이는 학생 (0) | 2022.12.21 |
---|---|
[Algorithm] 큰 수 출력하기 (0) | 2022.09.16 |
[Algorithm] 문자열 압축 (0) | 2022.06.21 |
[Algorithm] 가장 짧은 문자거리 (0) | 2022.06.20 |
[Algorithm] 문장 속 단어 (0) | 2022.03.20 |