Stack/Coding test
[C# / Lv2] 이진 변환 반복하기
Seo_re:
2022. 10. 7. 22:31
반응형
풀이 코드
using System;
public class Solution {
public int[] solution(string s) {
int zeroCount = 0;
int loopCount = 0;
while(s != "1")
{
string replaceStr = s.Replace("0", string.Empty);
int lengthDiff = s.Length - replaceStr.Length;
zeroCount += lengthDiff;
loopCount++;
s = Convert.ToString(replaceStr.Length, 2);
}
int[] answer = new int[] {loopCount, zeroCount};
return answer;
}
}
- string.Replace()를 사용해서 0값을 지워준다.
- 지운 문자열(replaceStr) 길이와 인수로 들어온 문자열(s)의 길이를 빼서 그 값을 전부 더해준다.
- 다음 루프에서 이 과정을 다시 처리하기 위해 s값을 replaceStr 문자열 길이를 2진수로 변환한 문자열로 변경해준다.
- 위 과정을 s가 "1"이 될때까지 반복 후, 결과를 출력한다.
기타
- Convert.ToString() : 첫번째 인수에 변환할 값을, 두번째 인수에 몇진수로 변환할건지 값을 입력하면 변환된 값을 문자열로 받을 수 있다.
반응형