https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int[] solution(String s) {
int[] answer = {0, 0};
while (s.length() > 1) {
int zeroCount = 0;
for (char ch : s.toCharArray()) {
if (ch == '0') {
zeroCount++;
}
}
answer[1] += zeroCount;
int len = s.length() - zeroCount;
s = Integer.toBinaryString(len);
answer[0]++;
}
return answer;
}
}
새로 알게 된 정보들
1. Integer.toBinaryString() : 이진변환 해주는 정적 메소드
String s = Integer.toBinaryString(int len);
진법 변환
2진 변환 : Integer.toBinaryString(int)
8진 변환 : Integer.toOctalString(int)
16진 변환 : Integer.toHexString(int)
10진 변환 : Integer.parseInt(String, int)
String binaryString = "101010";
int decimalNumber = Integer.parseInt(binaryString, 2);
2. .toCharArray() : 문자열을 문자 배열로 변환해주는 메서드
String str = "Hello";
char[] charArray = str.toCharArray();
for (char ch : charArray) {
System.out.println(ch);
}
위 코드에서 charArray는 {'H', 'e', 'l', 'l', 'o'}가 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int solution(int n) {
int answer = 0;
int sum = 0;
for(int i = 1; i <= n; i++){
for(int j = i; j <= n; j++){
sum += j;
if(sum == n){
answer++;
break;
} else if (sum > n){
break;
}
}
sum = 0;
}
return answer;
}
}
연속된 숫자의 합의 경우의 수를 세는 것이므로 i부터 1씩 증가시켜서 n과 같아지면 횟수 증가를 시켜서 반환해주도록 합니다.
'코딩테스트 > Java' 카테고리의 다른 글
[코딩테스트] 23-12-05 프로그래머스 (0) | 2023.12.05 |
---|---|
[코딩테스트] 23-11-30 프로그래머스 (0) | 2023.11.30 |
[코딩테스트] 23-11-29 프로그래머스 (0) | 2023.11.29 |
[코딩테스트] 23-11-28 프로그래머스 (0) | 2023.11.28 |
[코딩테스트] 23-11-27 프로그래머스 (1) | 2023.11.27 |