99클럽 코테 스터디 10일차 TIL + 병든 나이트

2025. 4. 12. 01:10·📝 끄적끄적/항해99 코테 스터디

https://www.acmicpc.net/problem/1783

 

 

- 오늘의 학습 키워드

병든 나이트


- 풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt(); // 세로
        int M = sc.nextInt(); // 가로

        int result = 0;

        if (N == 1) {
            // 세로가 1칸 → 못 움직임
            result = 1;
        } else if (N == 2) {
            // 2번, 3번 이동만 가능 (오른쪽으로 2칸씩 이동)
            result = Math.min(4, (M - 1) / 2 + 1);
        } else if (M < 7) {
            // 모든 이동 가능하지만 가로가 짧음 → 4가지 방법 다 못 씀
            result = Math.min(4, M);
        } else {
            // 모든 조건 만족 → 최대 이동 가능
            result = M - 2;
        }

        System.out.println(result);
    }
}

 

문제 파악하고 분기하는 게 중요한 문제였다.

 

1. N == 1

→ 위아래 이동이 전혀 안 되니까 시작 칸만 방문: 1

2. N == 2

→ 위아래로 2칸 이동 불가

→ 이동 방식 2번, 3번만 가능 → 오른쪽으로 두 칸씩만 가니까 최대 4번 이동

→ (M - 1) / 2번 이동 가능, 시작 포함해야 하니까 +1

3. N >= 3 && M < 7

→ 이동은 다 되지만, 가로가 좁아서 4가지 다 사용 불가

→ 최대 4칸까지 방문

4. N >= 3 && M >= 7

→ 다 가능하니까 그냥 M - 2칸 방문 가능


- 오늘의 회고

문제 이해가 매우 어려웠다.

특히 “이동 횟수가 4번 이상이면 모든 이동 방식을 한 번씩 써야 한다”는 조건이 처음에는 너무 복잡하게 느껴졌고,

병든 나이트의 4가지 이동 방식 자체도 그림 없이 이해하기가 어려웠다. 😭

 

세로 길이 N과 가로 길이 M에 따라 경우를 나누는 게 핵심이라는 걸 알게 됐고, 아래처럼 4가지 상황으로 나눠서 접근했다

1. N == 1: 이동 불가 → 1칸만 방문

2. N == 2: 2가지 이동만 가능 → 최대 4칸까지 방문 가능

3. N >= 3 && M < 7: 4가지 이동은 불가능 → 최대 4칸 방문

4. N >= 3 && M >= 7: 모든 조건 만족 → M - 2칸 방문 가능

 

문제에서 말하는 조건을 수학적으로 해석해서 경우를 나누는 연습이 중요하다는 걸 배웠다...

저작자표시 비영리 (새창열림)

'📝 끄적끄적 > 항해99 코테 스터디' 카테고리의 다른 글

99클럽 코테 스터디 13일차 TIL + JadenCase 문자열 만들기  (0) 2025.04.16
99클럽 코테 스터디 12일차 TIL + 포도주 시식  (0) 2025.04.15
99클럽 코테 스터디 11일차 TIL + 과자 나눠주기  (0) 2025.04.15
99클럽 코테 스터디 9일차 TIL + 저울  (0) 2025.04.10
99클럽 코테 스터디 8일차 TIL + 한국이 그리울 땐 서버에 접속하지  (0) 2025.04.10
99클럽 코테 스터디 7일차 TIL + 쇠막대기  (0) 2025.04.09
'📝 끄적끄적/항해99 코테 스터디' 카테고리의 다른 글
  • 99클럽 코테 스터디 12일차 TIL + 포도주 시식
  • 99클럽 코테 스터디 11일차 TIL + 과자 나눠주기
  • 99클럽 코테 스터디 9일차 TIL + 저울
  • 99클럽 코테 스터디 8일차 TIL + 한국이 그리울 땐 서버에 접속하지
현주먹
현주먹
끄적끄적 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (162)
      • 👶🏻 CS (15)
        • Operating System (8)
        • Database (4)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • JPA (5)
        • Test Code (1)
        • Database (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (57)
        • 후기 및 회고 (5)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL
  • 인기 글

  • 태그

    데브클럽
    인프런 특정문자뒤집기
    JPA
    TDD 클린 코드 with Java
    99클럽
    NextSTEP
    F-Lab
    객체지향
    C
    자바의정석
    jsp
    에프랩
    자바의신절판
    til
    개발자멘토링
    항해99
    코테스터디
    로또 미션
    ==와 equals()
    개발자취업
    코딩테스트준비
    백준10250
    에프랩 후기
    백준
    오라클
    인프런 단어뒤집기
    PostGreSQL함수
    티스토리챌린지
    오블완
    f-lab 후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
현주먹
99클럽 코테 스터디 10일차 TIL + 병든 나이트
상단으로

티스토리툴바