본문 바로가기
  • Adillete
【스터디노트】/▷TIL

코테 스터디 67일차 TIL + 오늘의 학습 키워드 진법 변환

by 아딜렛 2025. 11. 14.

- 오늘의 학습 키워드

1. 입력받기: 문자열 N과 정수B

2. 결과 값을 저장할 decimal 변수 초기화 0으로

3. N의 각 자리수에 대해 왼쪽에서 오른쪽으로

    a. 현재 자리의 문자를 가져온다

   b. 문자가 숫자면 해당 숫자값을 사용한다.

   c. 문자가 알파벳이면 해당 값으로 변환한다.

   d. decimal = decimal*B + 현재 자리 값

4. decimal 출력

- 공부한 내용 본인의 언어로 정리하기

N: 문자열이니까

char digit = N.chatAt(i);// 문자열에서 특정 위치의 문자를 가져오는 코드

chat digit: 한개의 문자를 저장하기 위해

 


- 오늘의 회고
  - 어떤 문제가 있었고, 나는 어떤 시도를 했는지

진법 문제를 어떻게 풀어야 하는지 몰랐음

 


  - 어떻게 해결했는지

 

String[] input = sc.nextLine().split(" ");
// sc.nextLine으로 사용자의 한줄 입력을 받는다.
String N = input[0];
// 배열의 첫번째 요소를 N 변수에 저장한다.
int B = Integer.parseInt(input[1]);
//N의 진법을 나타낸다.
long decimal = 0;
10 진법으로 변환된 결과를 저장할 변수를 0으로 초기화
long 타입을 사용한 이유 변환 결과가 매우 큰수가 될수 있기 때문


  - 무엇을 새롭게 알았는지

import java.util.Scanner;

public class changeBinary {
  public static void main(String[] args) {
    
  Scanner sc = new Scanner(System.in);

  String[] input = sc.nextLine().split(" ");
  String N = input[0];
  int B = Integer.parseInt(input[1]);

  long decimal =0;

  for(
  int i = 0;i<N.length();i++)
  {
    char digit = N.charAt(i);
    int digitValue;

    if (Character.isDigit(digit)) {
      digitValue = digit - '0';
    } else {
      digitValue = digit - 'A' + 10;
    }

    decimal = decimal * B + digitValue;
  }System.out.println(decimal);

  sc.close();

  }
}


  - 내일 학습할 것은 무엇인지
진법 변환 2