티스토리 뷰
For example, a 32-bit unsigned integer 305,419,896 (0x12345678
) would be saved in two different ways:
00010010 00110100 01010110 01111000
(in an Blefuscu computer)01111000 01010110 00110100 00010010
(in an Lilliput computer)
문제를 요약하면 위와 같이 입력 받은 숫자를 32비트로 나타내는데,
우리가 평소에 사용하는 방식이 Blefuscu 컴퓨터 방식입니다.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력 받을 숫자
long num = 0;
//총 몇개의 숫자를 입력 받을 것인지
int count = 0;
//2진법으로 나타냈을 때의 원래 위치
int boxCount = 0;
// 변환 했을 때의 위치
int thisNum = 0;
long result = 0;
count = sc.nextInt();
if(count > 0) {
for(int i = 0 ; i < count ; i ++) {
//큰 숫자를 받기 위해 long 타입을 받음
num = sc.nextLong();
boxCount = 0;
result = 0;
while (num > 0) {
//2의 n제곱에서 n제곱의 자리수가 어디인지 계산(8단위로 끊어서 계산)
thisNum = 32 - (((boxCount/8)+1) * 8 - boxCount%8);
boxCount++;
if(num%2 == 1) result = (long) (result + Math.pow(2,thisNum));
num = num/2;
}
System.out.println(result);
}
}
}
}
처음엔 32개짜리 int 배열을 만들어서 01001111 형식으로 바꾼 뒤,
다시 계산을 하려고 했으나 그것은 두번의 변환 과정을 거치기 때문에 불편했습니다.
그래서 1의 위치를 계산하여 1의 위치에 해당하는 2의 n제곱을 해주는 방식으로
문제를 풀었습니다.
아쉬운 것은 2의 n제곱을 좀 더 효율적으로 했다면 더 빠른 속도가 나올 것 같은데,
어떤 방법으로 할지 아직은 모르겠습니다.
'알고리즘 문제 풀이 ' 카테고리의 다른 글
달팽이 그리기 (0) | 2018.09.17 |
---|---|
자연수의 합 / Division (0) | 2018.09.17 |
단지번호 붙이기 (0) | 2018.09.17 |
백준 스택 수열 1874번 (0) | 2018.07.03 |
weird (0) | 2018.07.01 |
XHAENEUNG - 똥 같은 코드 (0) | 2018.01.29 |
DRAWRECT - 좌표 계산 문제 (0) | 2018.01.27 |
algospot 문제 잘 풀기 시작 (0) | 2018.01.25 |
- Total
- Today
- Yesterday
- java #퀵소트 #quicksort #알고리즘 #백준
- 쿼드트리
- Terminal
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- 백준 #java #알고리즘
- TypeScript
- java #알고리즘 #백준 #N과M #백트래킹
- java #백준 #알고리즘 #2805 #나무자르기
- react
- java #알고리즘 #백준 #퇴사
- 1992번
- 2630번
- 색종이자르기
- 한글 자동 완성
- java #오르막수 #백준 #알고리즘
- javascript #연속합 #알고리즘 #백준
- 백준
- Game
- javascript #백준 #회의실배정 #알고리즘
- webspider
- java #백준 #알고리즘 #로또 #6603
- java #알고리즘 #백준
- java #하노이 #알고리즘 #백준
- 알고리즘
- webpack
- javascript #백준 #알고리즘 #LCS
- java #알고리즘 #백준 #패션왕신해빈
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- Javascript
- npm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |