프로그래머스 레벨2 짝지어 제거하기, 다음 큰 숫자

Kim Dong Kyun·2023년 5월 7일
1
post-custom-banner

개요

프로그래머스 레벨 2 달성! 코딩테스트 연습 문제중에서 나오는듯 한데 비슷한 유형들을 리뷰한다.

1. 짝지어 제거하기 (링크)

import java.util.Stack;

class Solution
{
    public int solution(String s) {
        Stack<Character> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (!stack.isEmpty() && stack.peek() == c) {
                stack.pop();
            } else {
                stack.push(c);
            }
        }
        return stack.isEmpty() ? 1 : 0;
    }
}
  • 스택을 사용해서 풀었다.

2. 다음 큰 숫자 링크


public int solution(int n) {
        int countOne = intToBinaryAndCountOne(n);
        n += 1 ;

        while (countOne != intToBinaryAndCountOne(n)){
            n++;
        }

        return n;
    }

    private int intToBinaryAndCountOne(int n) {
        int count = 0;
        String nToBinary = Integer.toBinaryString(n);
        char[] charArray = nToBinary.toCharArray();
        for (char c : charArray) {
            if (c == '1'){
                count++;
            }
        }
        return count;
    }
  • 매서드로 빼서 풀었다.
post-custom-banner

0개의 댓글