https://school.programmers.co.kr/learn/courses/30/lessons/70129
๋ฌธ์
- 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ์ด๋ค ๋ฌธ์์ด x์ ๋ํ ์ด์ง ๋ณํ
- x์ ๋ชจ๋ 0์ ์ ๊ฑฐ
- x์ ๊ธธ์ด๋ฅผ c๋ผ๊ณ ํ๋ฉด, x๋ฅผ "c๋ฅผ 2์ง๋ฒ์ผ๋ก ํํํ ๋ฌธ์์ด"๋ก ๋ฐ๊พผ๋ค.
- ์์ : x = "0111010" -> "1111" -> "100”
- s๊ฐ "1"์ด ๋ ๋๊น์ง ๊ณ์ํด์ s์ ์ด์ง ๋ณํ์ ๊ฐํ์ ๋, ์ด์ง ๋ณํ์ ํ์์ ๋ณํ ๊ณผ์ ์์ ์ ๊ฑฐ๋ ๋ชจ๋ 0์ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ๋ฐฐ์ด์ ๋ด์ return
์ ํ์ฌํญ
- s์ ๊ธธ์ด๋ 1 ์ด์ 150,000 ์ดํ
ํ์ด
- s๊ฐ 1์ด ๋ ๋๊น์ง
- ๋ฌธ์์ด์์ 0 ์ ๊ฑฐ
- ๋ฌธ์์ด์์ 0์ ๊ฐ์ ์ธ๊ธฐ
- 1๋ง ๋จ์ ๋ฌธ์์ด ๊ธธ์ด ์ป๊ธฐ : ์ ์ฒด ๋ฌธ์์ด ๊ธธ์ด์์ 0์ ๊ฐ์ ๋นผ๊ธฐ
- ์ด์ง์ ๋ณํ : Integer.toString(i, 2) ๋ฉ์๋ ์ฌ์ฉ
- ์ด์ง ๋ณํ ํ์ ์นด์ดํ
- ๋ฌธ์์ด์์ 0 ์ ๊ฑฐ
์ฝ๋
import java.util.*;
class Solution {
public int[] solution(String s) {
int count_trans = 0;
int count_zero = 0;
while(!s.equals("1")) {
//0 ์ ๊ฑฐ(0์ ๊ฐ์ ์ธ๊ธฐ)
int zero = 0;
for(int i = 0; i < s.length(); i++) {
if(s.charAt(i) == '0') {
zero++;
}
}
//1๋ง ๋จ์ ๋ฌธ์์ด ๊ธธ์ด ์ป๊ธฐ
int one = s.length() - zero;
//์ด์ง์ ๋ณํ
s = Integer.toString(one, 2);
//์นด์ดํธ
count_trans++;
count_zero += zero;
}
return new int[] {count_trans, count_zero};
}
}
๊ฒฐ๊ณผ
๋ฐฐ์ด์
- ์ด์ง๋ฒ ๋ณํ ์ง์ ๋ฉ์๋
- Integer.toBinaryString(์ซ์); ๋ ์๋ค.
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.10.19 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ๊ฐ์ฅ ํฐ ์ (0) | 2023.09.07 |
ํ๋ก๊ทธ๋๋จธ์ค - ์์ดํ ์ค๊ธฐ (0) | 2023.08.21 |
ํ๋ก๊ทธ๋๋จธ์ค - ์คํฌํธ๋ฆฌ (0) | 2023.08.17 |
ํ๋ก๊ทธ๋๋จธ์ค - n์ง์ ๊ฒ์ (0) | 2023.08.17 |