[코딩테스트] 프로그래머스 - 항해99클럽 코딩테스트 스터디 18일차 : 식당 입구 대기 줄

Co-Zi·2024년 11월 14일
0

99클럽TIL

목록 보기
2/15
post-thumbnail

해당 글은 항해99 클럽 코딩테스트 스터디에서 진행된 18일차(20241114) 비기너 문제에 대한
TIL(Today I Learned) 내용입니다.

	문제 출처) https://www.acmicpc.net/problem/26042 

문제해결에 활용한 핵심포인트!

1. 문제에 대한 해석과 입력/출력에 대한 확인하기

  • 다소 복잡한 문제 상황이어서, 해당 문제에 대한 이해가 우선이었다.

  • 입력과 출력 조건에 대해서도 확인 필요했다.
    (실제로, 출력할 때의 계층을 착각하게 된다면 출력 오류가 난다. 아주 여러번 났다..)

2. 문제상황에서 활용하기에 적합한 구조에 대해 고려하기

  • 이 문제에서 핵심적으로 필요했던 것은 다음과 같다.
    (1) 인덱스 0 자리의 것을 제거하는 것(입력으로 2주어지면, 대기줄 맨 처음 학생을 대기줄에서 제거)
    (2) 특정조건 만족시(대기줄 최대길이인 순간), 맨 마지막에 존재하는 요소(학생번호) 확인

  • 위의 2가지 사항에 대해 수행할 수 있는 함수를 가진 것은 deque의 poll()peekLast()

3. 초기화값에 대한 설정 주의

  • 해당 문제에서는
    "최대 학생 대개줄 길이, 그 때의 맨 마지막 학생의 번호(대기줄 최대 순간이 여러번이라면 최소 선택)"
    즉, 최댓값과 최솟값을 구하는 문제이다.

  • 이러한 문제에 대해서는 그 초기값 설정이 필요했는데,
    특히나 최솟값을 구하는 경우 그 초기값을 Integer.MAX_VALUE로 지정한다.

4. 특정 표현에 대한 다양한 풀이

" 최솟값 구하기"

  • 처음 풀이) 현재최소값과 비교하여 지금 선택한 값과 대소비교를 한다.
  • 나중 풀이) Math.min(X, Y) 함수를 활용한다.

profile
한걸음 한걸음

0개의 댓글

관련 채용 정보