강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

vpemflrkql0926님의 프로필 이미지
vpemflrkql0926

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

12. 암호(replace(), parseInt(string, 2))

다른 풀이 질문입니다.

작성

·

178

0

안녕하세요.

 

제가 푼 방법은 

import java.util.*;

 

public class Main12 {

public static void main(String[] args) {

Main12 t = new Main12();

Scanner sc = new Scanner(System.in);

int input = sc.nextInt();

String str = sc.nextLine();

System.out.println(t.solution(input, str));

}

public String solution(int input, String str) {

String answer = "";

String[] strArr = {};

char c1 = '#';

char c2 = '*';

for (int j = 0; j < input; j++) {

strArr[j] = str.substring(0, 7);

str = str.substring(7);

}  //?????

char[] s = str.toCharArray();

for (int i = 0; i < s.length; i++) {

if (s[i] == c1) {

s[i] = '1';

}

else if (s[i] == c2) {

s[i] = '0';

}

}

String str2 = String.valueOf(s);

int n = Integer.parseInt(str2, 2);

if (n >= 65 && n <= 90) {

char c3 = (char)(n);

answer += c3;

}

return answer;

}

}

이런식으로 풀었습니다.

주석????처리된 부분을 빼고  그냥 #****## 넣었을때는 정상적으로 C가 출력되는데 

주석으로 ????된 부분인 입력값을 7글자 단위로 끊는 코드 작성을 어떤식으로 해야할지 모르겠습니다. 

지금 제가 올린 방법으로 하니 컴파일 에러가 발생하네요..

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

스트링배열을 String[] strArr = {}; 식으로 선언하면 

strArr[j] = str.substring(0, 7); 와 같이 인덱스로 접근을 할 수 없습니다. 

 String[] strArr = new String[10];와 같이 공간을 미리 확보해놓아야 인덱스 접근이 가능합니다. 

본인 코드이니 스스로 해결해보시기 바랍니다.

vpemflrkql0926님의 프로필 이미지
vpemflrkql0926

작성한 질문수

질문하기