반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준알고리즘
- Java개념
- 무료코딩강의
- 동적계획법
- 브루트포스
- 시간 복잡도
- 알고리즘공부
- ★
- BFS
- 빅오 표기법
- 백트래킹
- java
- 백준
- 백준자바
- 알고리즘
- 개발공부
- 자바개념
- 자바의정석연습문제풀이
- 자바
- 자바의정석
- 자바의정석연습문제
- dp
- 백준9단계
- 백준단계별로풀어보기
- dfs
- 자바공부
- ☆
- 다이나믹 프로그래밍
- 무료개발강의
- 코딩공부
Archives
- Today
- Total
더 많이 실패하기
공부 114일차: 백준 2089번 -2진수 자바 java 본문
반응형
2089 -2진수
https://www.acmicpc.net/problem/2089
2089번: -2진수
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110
www.acmicpc.net
백준 2089번 문제 -2진수
문제
과정 생각해보기 & 오답
우선 -2진수를 구현하기 전에, 10진수를 2진수로 바꾸는 방법에 대해 알아봐야 한다
그림에서 보는 것처럼 주어진 10진수를 계속해서 2로 나눈 후, 몫이 2보다 작아지면 몫과 지금까지의 나머지를 순서대로 적는다
10진수를 8진수로 변환할 때도 주어진 10진수를 계속 8로 나눈다
즉, -2진수는 주어진 숫자를 계속 -2로 나누어야 한다는 소리가 된다
-2로 나누고 몫은 올림을 해야 하는데, 그림에서처럼 음수일 때는 올림을 해야 원하는 결과를 얻을 수 있기 때문이다
이렇게 몫과 나머지를 다 구한 후엔 2진수를 구하는 그림의 화살표처럼 뒤집어서 출력한다
정답 인정 코드
https://bellossimo.tistory.com/56
이 블로그를 참고했다
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
|
package codingtestAndAlgorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
if(n == 0) {
System.out.println(0);
}else {
while(n != 1) {
// 10진수 -> n진수 : n으로 계속 나눈다
sb.append(Math.abs(n % -2)); //나머지는 양수여야 한다 -> 절대값
n = (int)Math.ceil((double)n / -2);
// -2.4가 있을 때, 올림해야 -2가 된다 (내림하면 -3으로 원하지 않는 결과가 나옴)
}
sb.append(n);
System.out.println(sb.reverse());
}
}
}
|
cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
공부 116일차: 백준 11005번 진법 변환 2 자바 java (0) | 2022.11.23 |
---|---|
공부 115일차: 백준 17103번 골드바흐 파티션 자바 java (0) | 2022.11.22 |
공부 113일차: 백준 1212번 8진수 2진수 자바 java (0) | 2022.11.20 |
공부 112일차: 백준 1373번 2진수 8진수 자바 java (0) | 2022.11.19 |
공부 111일차: 백준 17087번 숨바꼭질 6 자바 java (0) | 2022.11.18 |
Comments