본문 바로가기
[ 다먹살 ]/- Coding

[프로그래머스] 레벨0 이진수 더하기

by 엉망으로살기 2023. 3. 20.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120885?language=java 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 
오랜만에 프로그래머스 문제를 풀어보았다. 코딩테스트 연습 관련 페이지를 뒤적거리다보니 오늘의 문제라고 해서 하나씩 추천해주는 메뉴가 새로 생긴 것 같은데 아마도 내가 해결한 문제를 제외하고 랜덤으로 추천해주는 형식인가보다.
문자열과 이진수의 특성을 알면 쉽게 해결할 수 있는 간단한 레벨0짜리 문제였다.


문제 및 입출력


코드

class Solution
{
    public String solution(String bin1, String bin2)
    {
        int max = Math.max(bin1.length(), bin2.length());
        
        if(bin1.length()<max)
        {
            for(int i=max-bin1.length()-1; i>=0; i--)
            {
                bin1 = '0' + bin1;
            }
        }
        if(bin2.length()<max)
        {
            for(int i=max-bin2.length()-1; i>=0; i--)
            {
                bin2 = '0' + bin2;
            }
        }
        
        int sum = 0;
        String answer = "";
        
        for(int i=max-1;i>=0; i--)
        {
            sum = (bin1.charAt(i)-'0') + (bin2.charAt(i)-'0') + sum;
            
            if(sum%2==0)
            {
                answer = "0" + answer;
            }
            else
            {
                answer = "1" + answer;
            }
            if(sum>=2)
            {
                sum = 1;
            }
            else
            {
                sum = 0;
            }
        }
        if(sum==1)
        {
            answer = "1" + answer;
        }
        
        return answer;
    }
}

반응형

댓글