컴공생의 발자취

없는 숫자 더하기 본문

💡 코테

없는 숫자 더하기

MNY 2024. 4. 9. 21:31
728x90
반응형
💡 오늘의 학습 키워드

- 없는 숫자 더하기

 

 

오늘의 회고

문제1  : [없는 숫자 더하기]

  • 어떤 문제가 있었고, 나는 어떤 시도를 했는지

0~9까지의 숫자 일부가 담긴 배열을 입력값으로 가진다.

0~9까지의 숫자 중에서 배열에 없는 숫자의 합을 리턴하는 문제이다.

 

처음엔 입력받은 값의 요소를 반복적으로 돌고 0~9까지의 숫자도 반복적으로 돌게 했다.

그러면서 입력받은 배열의 요소와 0~9까지의 숫자가 맞지 않다면 리턴할 변수에 더한 값을 넣어주었다.

이렇게하면 0~9까지의 모든 숫자가 총합 * 입력받은 배열의 크기가 되어버린다..

즉, 너 문제 잘못풀었다는 소리.. ㅜ

 

그래서 0~9까지의 값을 가지는 확인 배열을 만들어서 입력받은 배열의 요소와 비교하고 맞다면 확인 배열의 값을 0으로 바꿔주었다. 그 후 확인 배열의 값을 모두 더하는 방식으로 풀이할 수 있었다.

 

 

프로그래머스

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

programmers.co.kr

 

  • 어떻게 해결했는지
// input : 0~9까지의 숫자 일부 배열(numbers)
// variable : 없는 수 총합(int: answer)
        // 입력배열의 크기(int: size)
        // 0~9까지의 값이 들어간 확인 배열(int: check)

// answer = 0
// 입력배열의 크기 구하기
// 0~9까지의 값이 들어간 배열 선언

// 입력배열의 크기만큼 반복문(i = 0)
    // 9까지의 반복문(j = 0)
        // 입력 배열[i]와 확인 배열[j]가 맞다면, 확인 배열[j]에 0값 넣기
// 9까지의 반복문(i = 0)
    // answer값에 확인 배열[i] 더한 값 넣기

// return : 입력배열에서 찾을 수 없는 수의 합

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        int size = numbers.length;
        int[] check = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        
        for(int i = 0; i < size; i++) {
            for(int j = 0; j <= 9; j++) {
                if (numbers[i] == check[j])
                    check[j] = 0;
            }    
        }
        for(int i = 0; i <= 9; i++) {
            answer += check[i];
        }
        
        return answer;
    }
}

 

  • 무엇을 새롭게 알았는지

오늘은 아니고 어제 알게된 것인데..

사람이 잠을 자는 것도 중요하다.!!

 

당연한 소린데 왜 하느냐..

할 거 많다고 잠 안자고 했다가 저녁에 잠깐만 자야지 하고 다음날 되서 TIL 작성 연속으로 하던거 끊겼다.

오늘의 일기 : 건강이 제일 중요하다. 시간 관리도 매우 중요하다. 

 

내일 학습할 것은 무엇인지

  • 백준 기본 문제 1개 풀이
  • 자바 형변환 정리
  • CS 공부
  • 클럽99 코딩테스트(비기너 + 미들러)
728x90
반응형