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

이주용님의 프로필 이미지

작성한 질문수

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

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

3시간 고민해서 풀었습니다.

작성

·

483

0

매번 문제 풀때마다 너무 어렵게 문제를 접근해서 푸는거같아서 질문 남깁니다...

항상 문제를 풀때 저도 알아보기 어렵게 코드를 짜는거같은데 제가 짠 코드도 다시 설명하라하면 못하겠는데 이럴땐 어떻게 하는게 좋나요??

package algorithm;

import java.util.ArrayList;
import java.util.Scanner;

public class Ascii_12 {

	public String solution(int n, String str) {
	
		int len = n * 7;
		String resultStr = "";
		if(str.length() != len) {
			System.out.println("문자의 개수가 입력 조건과 상이합니다.");
		}else {
			
			str = str.replace('#', '1');
			str = str.replace('*', '0');
		}
		for(int i = 0; i < n; i++) {
			String newStr = str.substring(i*7, (i+1)*7);
			int result = 0;
//			System.out.println(newStr);
			for(int j = newStr.length()-1; j>=0; j--) {
				if(newStr.charAt(j) == '1') {
					int jAbs = Math.abs(j-6); 
//					System.out.println(jAbs);
					result += (int)(Math.pow(2, jAbs));
				}
			}
			
//			System.out.println((char)result);
			resultStr += (char)result;
		}
		return resultStr;
		
	}
	
	public static void main(String[] args) {

		Ascii_12 t = new Ascii_12();
		
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		
		String str = sc.next();

		System.out.println(t.solution(n, str));
		
	}

}

답변 2

0

주석을 달면서 한줄씩 인과관계를 따져보면서 코드를 스스로 이해하는게 중요할 것 같아요

0

안녕하세요, 인프런 AI 인턴이에요. 코드를 이해하고 설명하는 것은 어려운 일일 수 있습니다. 하지만 여러분이 코드에 어려움을 겪을 때 도움이 될 수 있는 몇 가지 팁을 알려드릴게요.

  1. 주석 작성하기: 코드를 이해하기 쉽게 만드는 한 가지 방법은 주석을 작성하는 것입니다. 주석은 코드의 의도와 동작 방식을 설명하는 역할을 합니다. 어떤 일이 일어나는지에 대한 주석을 추가하여 코드를 설명하면 다른 사람 뿐만 아니라 여러분 자신도 이해하기 쉬워질 거예요.

  2. 코드 분할하기: 코드를 작은 단위로 분할하는 것은 코드를 이해하는 데 도움이 될 수 있습니다. 함수 또는 클래스로 코드를 분할해서 각 부분의 역할을 명확하게 정의하면 코드의 가독성이 향상될 수 있습니다.

  3. 디버깅 프린트문 추가하기: 코드의 동작을 이해하기 위해 디버깅용으로 프린트문을 추가할 수 있습니다. 예를 들어, 반복문 안에서 변수의 값을 출력하여 어떻게 동작하는지 확인할 수 있습니다. 이를 통해 코드의 문제를 발견하고 수정할 수 있을 거예요.

  4. 예제와 함께 설명하기: 코드를 설명할 때 예제를 사용하는 것은 좋은 방법입니다. 예제를 통해 코드가 어떻게 동작하는지 한눈에 파악할 수 있고, 큰 그림을 이해하는 데 도움이 될 거예요.

이러한 방법들을 사용하면 코드를 이해하고 설명하는 데 도움이 될 수 있습니다. 하지만 코드를 더욱 명확하고 이해하기 쉽도록 작성하는 방법을 연습하는 것도 중요합니다. 계속해서 문제를 해결하며 경험을 쌓으시면 코드 작성 및 설명 능력이 향상될 것입니다. 성장하는 과정에서 조금씩 발전하실 수 있을 거예요. 응원합니다!