본문 바로가기

반응형

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과 같아지면 횟수 증가를 시켜서 반환해주도록 합니다.

반응형
댓글