코이_CO2
LIVING IS DYING
코이_CO2
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • TIL ⚓️ (4)
      • OT주차 (1)
      • 1주차_풀스택 미니 프로젝트 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (1)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (2)
    • WIL ⚓️ (0)
      • OT주차 (0)
      • 1주차_언어 기초(Java) (0)
      • 2주차_프로그래밍 기초 (0)
      • 3주차_주특기 입문(Spring) (0)
      • 4주차_주특기 숙련(Spring) (0)
    • Java의 정석 📖 (4)
      • Chapter 1. 자바를 시작하기 전에 (3)
      • Chapter 2. 변수 (0)
      • Chapter 3. 연산자 (0)
      • Chapter 4. 조건문과 반복문 (1)
    • Programmers (7)
      • Lv. 1 (7)
    • 혼자 공부하는 자바 📖 (8)
      • Chapter 05 참조 타입 (0)
      • Chapter 06 클래스 (3)
      • Chapter 07 상속 (1)
      • Chapter 08 인터페이스 (1)
      • Chapter 09 중첩 클래스 & 인터페이스 (0)
      • Chapter 10 예외 처리 (1)
      • Chapter 12 스레드 (1)
    • Java (2)
    • Spring (1)
    • Python (2)
    • Mysql (4)
    • Machine Learning (6)
      • 추측 통계 (2)
    • Data Analysis (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring
  • Spring Security
  • PYTHON
  • 부트스트랩
  • 주특기 심화주차
  • 프로그래머스
  • HTML
  • jwt
  • 파이썬
  • 스프링
  • DTO
  • programmers
  • 혼자공부하는자바
  • TIL
  • 웹개발 종합반
  • 배열
  • CRUD
  • 항해99
  • 하루기록
  • TIL/WIL
  • java
  • 자바
  • 개발자
  • sql
  • 코딩
  • LV1
  • 스터디
  • 혼자 공부하는 자바
  • 게시판 프로젝트
  • 개발일지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
코이_CO2

LIVING IS DYING

항해99 알고리즘 모의고사
카테고리 없음

항해99 알고리즘 모의고사

2022. 11. 22. 15:44

2022년 11월 22일 화요일 오후 1시 항해99에서 이틀 뒤에 열리는 알고리즘 테스트를 대비한 모의고사를 진행했다.

15시까지 제출로 2시간의 시간이 주어졌다.

문제는 총 3문제가 주어지는데 그 중 한 가지를 풀고 스크린 레코딩을 통하여 음성과 함게

풀이 영상을 찍은 뒤 유튜브에 업로드하고 영상 링크와 해당 문제의 코드를 제출하면 된다.

1번은 신대륙 발견이라고 명명되어 있었지만 시작 날짜를 입력하였을 때 일정 일수 뒤의 날짜가 출력되는 문제였고

3번은 소수점이 들어가고 (상)이 표기되어 있길래 프로그래머스에서 익숙하게 푼 배열 유형의 문제인 2번을 선택했다.

아래는 2번 문제에 대한 설명과 조건이고 제출한 풀이 코드이다.

 

 

 


2번. 몇시간 했더라? (중)

문제 설명

지용이는 항해에서 한 주 동안 공부 기록을 남길 알고리즘을 만들어보기로 결심했다. 항해의 체크인 페이지에는 몇가지 조건이 있는데

이를 만족하는 알고리즘을 만들어보자.

  • 체크인과 체크아웃은 항상 정시에 진행한 것으로 가정한다.
  • 체크아웃을 할 때 익일 시간은 24+a 로 계산한다. 즉 새벽 2시는 24+2 인 26으로 표기한다.
  • 체크인 페이지는 체크아웃이 새벽 5시 정각이나 새벽 5시를 넘어가면 체크아웃을 깜빡한 것으로 간주한다. 따라서 새벽 5시가 넘어가 체크아웃을 하게 되면 자동으로 체크아웃을 오후 9시(21시)로 한 것으로 처리한다.

제한 조건

  • 체크인(checkin)과 체크아웃(checkout)을 진행한 시간이 담긴 배열 두 개가 주어진다.
  • 각 배열에는 월요일부터 일요일까지 체크인/아웃을 한 시간이 담겨있다.
  • checkin과 checkout 배열의 길이는 각각 7 이다.

입출력 예

checkin checkout result
[9, 9, 8, 8, 7, 8, 9] [21, 25, 30, 29, 22, 23, 30] 96
[9, 7, 8, 9, 7, 9, 8]
[23, 22, 26, 26, 29, 27, 22] 110

지정 입력값

checkin checkout result
[9, 9, 9, 9, 7, 9, 8]
[23, 23, 30, 28, 30, 23, 23] 102

Java 답안 포맷

public class Main {
    public int solution(int[] arr1, int[] arr2) {
        int answer = 0;
        return answer;
    }

    public static void main(String[] args) {
        Main method = new Main();
        int[] arr1 = {9, 9, 9, 9, 7, 9, 8};
        int[] arr2 = {23, 23, 30, 28, 30, 23, 23};
        System.out.println(method.solution(arr1, arr2));
    }
}

 

 


풀이

public class Main {
    public int solution(int[] arr1, int[] arr2) {
        int answer = 0;  // answer : 총 공부시간 arr1 : 체크인 시간  arr2 : 체크아웃 시간
        for(int i=0; i<arr1.length; i++){  // 배열의 길이만큼 반복문 실행
            if(arr2[i]>=29){  // 29는 체크아웃 초기화 시간인 5시(24+5)
                arr2[i] =21;  // 5시거나 5시를 넘어가면 21시 체크아웃 처리
            }
            answer += arr2[i]-arr1[i];  // arr2에서 arr1의 각 인자를 뺀 값을 합산
        }
        return answer;
    }

    public static void main(String[] args) {
        Main method = new Main();
        int[] arr1 = {9, 9, 9, 9, 7, 9, 8};        // arr1 입력값
        int[] arr2 = {23, 23, 30, 28, 30, 23, 23}; // arr2 입력값
        System.out.println(method.solution(arr1, arr2));
    }
}
// 출력 : 102
    코이_CO2
    코이_CO2
    나에게 찾아오는 뻔한 매일을 언제나 값지게 여길 줄 아는 내가 되기를

    티스토리툴바