반응형
🔺 문제
🔺 코드
(틀림)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i = 0 ; i < T ; i++) {
int n = Integer.parseInt(br.readLine());
String[] str = Integer.toBinaryString(n).split(""); // 이진수로 변환
StringBuilder sb = new StringBuilder();
for(int j = 0 ; j < str.length ; j++) {
if(str[j].equals("1")) {
sb.append(str.length - 1 - j).append(" ");
}
}
System.out.println(sb.reverse().toString().trim());
}
}
}
|
cs |
일단 앞에서부터 순서대로 인덱스 구한 다음에 reverse 써서 거꾸로 출력하면 되겠지-해서 했는데 틀렸다고 함...
(정답)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i = 0 ; i < T ; i++) {
int n = Integer.parseInt(br.readLine());
String str = Integer.toBinaryString(n);
StringBuilder sb = new StringBuilder();
for(int j = str.length() - 1 ; j >= 0 ; j--) {
if(str.charAt(j) == '1') {
sb.append(str.length() - 1 - j).append(" ");
}
}
System.out.println(sb.toString());
}
}
}
|
cs |
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
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i = 0 ; i < T ; i++) {
int n = Integer.parseInt(br.readLine());
String str = Integer.toBinaryString(n); // 이진수로 변환
StringBuilder sb = new StringBuilder(str);
String realStr = sb.reverse().toString();
for(int j = 0 ; j < realStr.length() ; j++) {
if(realStr.charAt(j) == '1') {
System.out.print(j + " ");
}
}
System.out.println();
}
}
}
|
cs |
어떻게든 reverse 써먹어 보고 싶어서 어거지로 써봤는데...
위 풀이가 더 나은 거 같음..
🔺 다른 풀이들
- 이진수로 변환할 때, while문 활용하심
💬 느낀 점
만만하게 봤다가 생각보다 못 푸는 내 모습을 보고 충격,,,,ㅋㅋㅋㅋㅋㅋ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 풀이
✔ StringBuilder reverse() 메소드
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 2309번: 일곱 난쟁이 (0) | 2023.05.19 |
---|---|
[백준/JAVA] 2460번: 지능형 기차 2 (0) | 2023.05.19 |
[백준/JAVA] 2166번: 다각형의 면적 (1) | 2023.05.18 |
[백준/JAVA] 2162번: 선분 그룹 (1) | 2023.05.18 |
[백준/JAVA] 17387번: 선분 교차 2 (0) | 2023.05.18 |