728x90
반응형
문제 설명
10진수를 입력받아 2진수로 변환해 반환하는 solution( ) 함수를 구현하세요.
제한사항
- decimal은 1이상 10억 미만의 자연수
입출력 예
decimal | 반환값 |
10 | 1010 |
27 | 11011 |
12345 | 11000000111001 |
코드
import java.util.Stack;
public class Solution {
public static void main(String[] args) {
System.out.println(solution(10));
System.out.println(solution(27));
System.out.println(solution(12345));
}
public static String solution(int decimal) {
Stack<Integer> stack = new Stack<>();
while (decimal > 0) {
int remainder = decimal % 2;
stack.push(remainder);
decimal /= 2;
}
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
return sb.toString();
}
}
정리
10진수를 2진수 변환하는 방법은 링크를 참고 하세요.
https://dojang.io/mod/page/view.php?id=1760
COS Pro 2급 C 언어: 33.9 배열을 활용하여 10진수를 2진수로 변환하기
이번에는 배열을 응용해서 10진수를 2진수로 변환한 뒤 배열에 넣어보겠습니다. 그런데 10진수에서 2진수로는 어떻게 변환할까요? 방법은 간단합니다. 10진수를 0이 될 때까지 2로 계속 나눈 뒤 나
dojang.io
1. 십진수 13을 2진수로 변경한다고 하면 이것을 2로 나누고 나머지를 스택에 push 합니다. 13을 2로 나눈 나머지가 1이므로 1을 푸시 합니다.
2. 6을 2로 나눈 나머지는 0이므로 0을 푸시하고, 3을 2로 나눈 나머지는 1이므로 1을 푸시 합니다.
3. 몫이 0이 될때까지 나누면 스택에는 1, 0, 1, 1 쌓입니다.
4. 연산이 끝난 후 스택에서 팝하면 13을 이진수로 변환한 1 1 0 1 이 됩니다.
5. String의 + 연산자는 수행할때마다 객체를 새로 생성합니다. 따라서 문자열의 길이가 계속 길어지는 반복문 내에서는 Stringbuilder 사용하는 것이 좋습니다.
728x90
반응형
'Study > Coding test' 카테고리의 다른 글
[프로그래머스] 괄호 회전하기 - 자바(Java) (1) | 2024.11.09 |
---|---|
[프로그래머스] 올바른 괄호 - 자바(Java) (0) | 2024.11.07 |
[프로그래머스] 방문길이 - 자바(Java) (1) | 2024.10.16 |
[프로그래머스] 실패율 - 자바(Java) (0) | 2024.10.09 |
[프로그래머스] 행렬의 곱셈 - 자바(Java) (0) | 2024.10.04 |