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

용재님의 프로필 이미지
용재

작성한 질문수

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

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

문제를 풀다보면 코드가 복잡해지는데 어떻게 해야할까요 ㅠㅠ

작성

·

205

0

자바에서 제공하는 함수를 최대한 배제하고 풀어보려 했는데 코드가 엄청 길어지고 문제 검사에서도 런타임 에러가 뜨네요.. 어떤 방향으로 공부하는게 좋을까요 선생님? 조언 부탁드립니다.. 

 

 

import java.util.Arrays;

import java.util.Scanner;

import java.util.Set;

 

public class Main {

public int square(int p) {

int i=0;

int result = 1;

while(i < p) {

result *= 2;

i++;

}

return result;

}

public String solution(String k ) {

char a[] = k.toCharArray();

int b[] = new int[k.length()];

String word = "";

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

if(a[i] == '#') {

b[i] = 1;

}else if(a[i] == '*') {

b[i] = 0;

}

}

int count =0;

int num = 0;

 

while(count < k.length()) {

 

if(6 -(count%7) == 0) {

num += b[count] * 1;

}else {

num += square(6-(count % 7)) * b[count];

}

if(count!=0 && (count % 7) == 6) { 

word += (char) num;

num = 0;

}

count ++;

}

return word;

}

public static void main(String[] args) {

Main T = new Main();

Scanner kb = new Scanner(System.in);

int number = kb.nextInt();

String str;

do {

str = kb.nextLine();

}while(str.length()!= number*7);

System.out.println(T.solution(str));

}

 

}

답변 2

2

컴파일이 안되서 실행이 안되는건 문법이 잘못되었거나 코드가 잘못된겁니다.

컴파일 에러문 잘 읽어보시면 어디서 왜 오류가 났는지 알려주니까 잘 찾아가서 고쳐주시면 되구요.

 

자바에서 제공하는 함수를 왜 배제하셨는지는 모르겠지만 이용하셔도 됩니다.

코딩테스트에서도 기본 함수는 다 쓸수 있어요.

혹시 취준생이시라면, 면접에서 기본함수를 물어보지도 않구요.. 

 

IDE 쓰시면 요즘 다 밑줄같은게 나와서 이거 잘못됬다고 고쳐야 한다고 빨간줄로 나오거나
노란줄이나 회색줄로 고치는게 좋다고 경고를 줍니다.

 

char a[] = k.toCharArray();

int b[] = new int[k.length()];

 

일단 이부분이 잘못된거같네요.

타입이 안맞다고 할거같습니다. (그리고 c언어 스타일로 변수선언 하신거 같네요)

 

특정 타입으로만 된 배열을 만들고 싶으시면 

List<Char> charArrayk.toCharArray();

로 리스트에 제네릭을 이용하면 됩니다.

 

자료구조들은 보통 Collection 이라는 함수를 언어별로 제공하니 java collection 이런식으로 검색해보세요.

 

공부하시느라 많이 힘드실텐데 화이팅 하세요 ^^

0

용재님의 프로필 이미지
용재
질문자

좋은 답변 너무 감사드립니다!

제가 런타임 에러를 컴파일 에러라고 잘 못 말씀드렷습니다. 이클립스에서는 잘 실행이 되는데 채점사이트에서는 런타임 에러가 떠서 이런경우에는 제 코드가 과하게 길기 때문에 그런건지 궁금해서 질문 드렸습니다. 그리고 한가지 더 질문을 드리면 제가 코딩테스트를 준비중에 있는데 거기서는 웹 서칭은 불가능하다고 해서, 자바에서 제공하는 함수의 어디까지를 숙지해 가야하는지 감이 잡히지 않는데 조언 부탁드려도 될까요?  

Collection에 대한 설명 너무 감사드립니다.

 

코테문제 풀면서 자주쓰는 것들 import 문 외워서 

아래처럼 하면되지않을까 싶습니다만..

import java.util.*;
용재님의 프로필 이미지
용재

작성한 질문수

질문하기