반응형
1. 문제 번호 2745번
2. 문제 풀이
한줄 평가
- 나에게는 역대급 난이도
문제를 먼저 정확히 파악
- 진수라고 하는 것은 한 자리에서 표현할 수 있는 숫자
즉 2진수는 1자리에서 표현할 수 있는 최대값이 0~1
8진수는 1자리에서 표현할 수 있는 최대값이 0~7
10진수는 1자리에서 표현할 수 있는 최대값이 0~9
- 2진수 - > 8진수 변환 방법
(작은 것에서 큰 것으로 변환 이라고 이해 하세요. 이것만 이해하면 2진수 -> N진수 모두 가능 )- 배경) 한 자리에 0~1로만 표현 가능한 세상에서 0~7까지 사용하여 표현할 수 있다.
그렇기 때문에 2진수 3자리를 묶어서 1진수로 표현이 가능해졌다. (8진수 = 2^3) - 예시) 1101111 가 2진수
- 001 101 111 = 1 5 7
- 배경) 한 자리에 0~1로만 표현 가능한 세상에서 0~7까지 사용하여 표현할 수 있다.
- 8진수 -> 2진수 변환 방법 (큰 것에서 작은 것으로 변환)
- 배경) 한 자리에 0~7까지 표현 가능한 세상에서 0~1까지로 밖에 표현할 수 없다.
그렇기 때문에 8진수 1자리를 묶어서 3자리로 표현해야 한다. - 예시) 157 가 8진수
- 1을 표현하려고 3자리로 묶인 001, 5를 표현하려고 3자리로 묶은 101, 7을 표현하려고 3자리로 묶은 111
- 배경) 한 자리에 0~7까지 표현 가능한 세상에서 0~1까지로 밖에 표현할 수 없다.
- N진수 -> 10진수 변환 (숫자 체계의 기본 원칙)
- 예시) 157가 8진수
- (1*8^2) + (5*8^1) + (7*8^0) = 111 (64 + 40 + 7)
- 예시) 157가 8진수
- N진수 -> 10진수 변환 방법 (숫자 체계의 기본 원칙)
- 예시) ZZZZZ 36진수 (36진수는 한 자리에서 0~35까지 표현 가능)
- Z는 35 이다. (A는 10이다.)
- ZZ는 (35*36^1)+(35*36^0) 이다. =1295
- Z9는 (35*36^1) + (9*36^0) = 1269이다.
- Z는 ASCII코드 90이다. 이유는 A (ASCII코드 65) , 26개 (알파벳 총개수) _ A에서 25만큼 떨어져 있다.
- Z - x = 35 이다. x는 55이다.
- 즉 문자는 -55를 하면 10진수의 숫자로 표현이 가능하다.
- 0번째 자리부터 N번째 자리까지 36의 ^N 을 해줘야 한다.
- 예시) ZZZZZ 36진수 (36진수는 한 자리에서 0~35까지 표현 가능)
나의 문제풀이 방식 및 순서
* 나의 다양한 학습이 우선이기 때문에 다양한 방법을 생각 *
A는 ASCII 65, 0 은 ASCII 48
제일제일 어렵다.. 가장 오래걸리고 진수끼리 변환하는거 나는 너무 어렵다.
계산은 쉽지 근데 내가 막 바꿔가면서 계속 연습해보다보면 뭐가뭐였는지도 모르겠어 🤩
3. 소스 인증
import java.util.*;
import java.lang.*;
import java.io.*;
// The main method must be in a class named "Main".
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String N = st.nextToken(); //문자
int B = Integer.parseInt(st.nextToken()); //진수 표현
int tmp = 1;
int result = 0;
for(int i = N.length()-1; i >= 0 ; i--){
char c = N.charAt(i);
if(c >= 'A' && c <= 'Z'){
result += (c-55) * tmp;
} else {
result += (c-48) * tmp;
}
tmp *= B;
}
System.out.println(result);
}
}
- 실패 소스코드 -
4. 추가 개념
5. 참조 블로그
불편함을 느끼실 경우 연락 주시면 곧 바로 삭제하도록 하겠습니다.
728x90
반응형
'알고리즘(BOJ) 문제풀이' 카테고리의 다른 글
[BOJ/백준] 일반수학1_ 2720번 (0) | 2024.05.23 |
---|---|
[BOJ/백준] 일반수학1_ 11005번 (0) | 2024.05.22 |
[BOJ/백준] 2차원 배열_ 2563번 (0) | 2024.05.19 |
[BOJ/백준] 2차원 배열_ 10798번 (0) | 2024.05.19 |
[BOJ/백준] 2차원 배열_ 2566번 (0) | 2024.05.19 |