카테고리 없음

[ 99클럽 코테 스터디 15일차 TIL ] 프로그래머스(2016년)

MNY 2024. 4. 12. 23:41
728x90
반응형
💡 오늘의 학습 키워드

- 프로그래머스
    * 2016년 : 비기너 문제

 

오늘의 회고

문제1  : [2016년]

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

2016년의 몇월 며칠인지 알려주었을 때, 무슨 요일인지 리턴해주는 문제였다.

 

내가 제일 먼저 했던 방식은 반복문을 돌면서 2월은 윤달로 29일을 나머지 홀수달은 31일 짝수달은 30일을 총 날짜 수에 더해주는 것이었다. 이렇게해서 제출했을 때 테스트 케이스 1개만 통과하지 못했다.

그래서 이게 뭐지? 했는데... 

 

어릴 때 월별 일수 계산하는 걸 이상하게 배워놓은 게 문제였다.

손등으로 세어봤을 때 7까지 세고 하나 더 31일로 세서 8월까지 31일로 세고 와야 하는데 30일로 세고 돌아왔지.. 

살면서 달력 일수 세어볼 필요도 없고 세어본 적이 있었을 땐 이상하리만치 다 들어맞았기에.. 태어나서 처음 알았다.

 

아무튼 이걸 깨닫고는 매달의 날짜 수를 배열로 선언해줘서 구하는 방식을 택했다.

 

 

프로그래머스

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

programmers.co.kr

 

  • 어떻게 해결했는지
// input : 월(int a), 일(int b)
// variable : 요일(String week), 총 날짜 수(int day)
            // 월 날짜 수(int month), 리턴 요일(String answer)

/* process
월 선언 및 초기화 // 2월만 29일
요일 선언 및 초기화 // 1월 1일이 금요일부터 시작이니 목요일부터 입력

총 날짜 수(day)에 입력받은 일(b) 더하기
총 날짜 수(day) % 7 나머지 값을 인덱스로 요일 구하기   
*/
// 2016. 01. 01 금요일
// 2월만 29 홀수달 31 짝수달 30

// result : 무슨 요일인지

class Solution {
    public String solution(int a, int b) {
        int day = 0;
        int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30};
        String[] week = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
        
        for (int i = 1; i < a; i++) {
            day += month[i-1];
        }
        day += b;
        String answer = week[day % 7];
        
        return answer;
    }
}

 

  • 무엇을 새롭게 알았는지

손등으로 날짜 수 세는 걸 다시? 배웠다. 이걸 어른되서 알게 될 줄 몰랐다. 

가르쳐 준 사람이 없었어서 어디서 뭘 보고 배웠는지는 모르겠다만은.. 지금이라도 제대로 알아서 참! 정말로!!! 다행이다ㅠ

오늘은 독서토론과 이력서 + 자기소개서 작성으로 학습한 내용은 그다지 없다.

요즘따라 조금 헤이해진 것 같다. 학습은 중요한 것 최대 3개까지가 내가 집중해서 완료할 수 있는 갯수인 것 같다.

 

내일 학습할 것은 무엇인지 (최대 3개)

  • 정보처리기사 실기
  • 자바 형변환 정리
  • 클럽99 코딩테스트(비기너 + 미들러)
728x90
반응형