[백준] 5635번: 생일

2024. 6. 27. 20:26·코딩테스트/BOJ

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

난이도: 

▶ 문제 탐색하기

n : 학생의 수 (1 ≤ N ≤ 100)

이름 dd mm yyyy : 단어들 (알파벳 소문자, len(이름) ≤ 15, 1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31), 중복 x

 

 ◇ 원하는 출력 조건

  1.  막내의 이름
  2.  첫째의 이름

▶ 코드 설계하기

 먼저 2차원 배열에 학생의 정보를 담은 후, arr[n][3]의 값의 최대, 최소를 찾는다.

만약,  중복된다면 arr[n][2]를 비교하고 또 중복된다면 arr[n][1]을 비교하여 max, min을 찾는다.

 

 고민: 한 번에 2차원 배열을 입력 받은 후에 비교 연산을 진행할지, 한 줄 한 줄 입력받으며 비교 연산을 진행할지 고민이다. 이론 상으로는 후자가 더 적은 연산을 갖을 것이다. 

 

 1. 학생 수를 입력받는다.

 2. 한 줄씩 입력받아 2차원 배열로 저장한다.

 3. arr[i][3]의 max를 막내, min을 첫째라고 하자

 4. 만약 arr[i][3]의 max/min이 2개 이상이라면, arr[i][2]에서 max/min을 각각 찾는다.

 5. 만약 arr[i][2]의 max/min이 2개 이상이라면, arr[i][1]에서 max/min을 각각 찾는다.

 6. max와 min에 해당하는 arr[i][0]을 읽는다.

 

 

idea1. 한 번에 max와 min을 찾을까, 아니면 나눠서 찾을까?

idea2. 만약 막내/첫째의 년도가 1999라면 1999가 아닌 모든 행은 지워버린다. -> 꼭 지우는 단계가 필요한가? -> ㄴㄴ

 

▶ 회차별 수정사항

  • 여튼 아래처럼 하나하나씩 비교하다가 else 구문에 여러 경우의 수를 고려해야함을 알고 빠르게 포기.
  • arr[i][3]의 min과 max를 구하려면 list comprehension을 사용해야한다. 
    그게뭐지..? 
  •  

▶ 정답 코드

import sys

N = int(sys.stdin.readline())
arr = []

for _ in range(N):
    name, day, month, year = sys.stdin.readline().split()
    arr.append([name, int(year), int(month), int(day)])

arr.sort(key=lambda x: (x[0], x[1], x[2]))

print(arr[n-1][0])
print(arr[0][0])

▶ 추가 풀이

 

'코딩테스트 > BOJ' 카테고리의 다른 글

[백준] 2578번: 빙고  (0) 2024.07.01
[백준] 25305번: 커트라인  (0) 2024.06.28
[백준] 1181번: 단어 정렬  (0) 2024.06.26
[백준] 10814번: 나이순 정렬  (0) 2024.06.25
[백준] 2309번: 일곱 난쟁이  (0) 2024.06.24
'코딩테스트/BOJ' 카테고리의 다른 글
  • [백준] 2578번: 빙고
  • [백준] 25305번: 커트라인
  • [백준] 1181번: 단어 정렬
  • [백준] 10814번: 나이순 정렬
뚱이, not a starfish
뚱이, not a starfish
M.S. Student,. Mainly interested in computer vision and autonomous cars
  • 뚱이, not a starfish
    Wilbur-Babo
    뚱이, not a starfish
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • 통신 및 네트워크 (12)
      • Embedded Projects (2)
      • 3D Reconstruction (1)
        • Gaussian Splatting (0)
        • 3D-GS (1)
        • Multi-view Geometry (0)
        • VSLAM (0)
        • Computer Graphics (0)
      • LLM(VLM) (0)
      • AI-Study (28)
        • Mono-Depth (7)
        • Base (2)
        • Computer Vision (1)
        • Image Processing (3)
        • Tiny Object Detection (3)
      • 자율주행 (20)
        • [2023] 1-fifth AA EV (4)
        • [2022] 1-tenth AA EV (2)
        • ROS 1,2 (4)
        • 이론 (7)
        • 실습 (3)
      • Pointcloud (0)
      • sw (16)
        • 정보보안 (1)
        • Android_develop (3)
      • [학부] 전기전자공학 (12)
        • 반도체 (2)
        • 마이크로프로세서 (6)
      • 코딩테스트 (22)
        • BOJ (21)
      • 취준 (21)
        • EVS37 Ambassador (5)
        • 차량 제어 플랫폼 (5)
        • 영어 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정렬
    현대자동차 연구개발
    자율주행시험
    현대자동차최종면접결과
    현대자동차 서류합격후기
    헤네스
    헤네스유아용자동차
    현차 자율주행
    현차 3월 자율주행
    오픽후기
    자율주행경진대회
    현대자동차 자율주행 서류 합격 후기
    rc카
    현대자동차 자율주행
    현대자동차최종불합
    현대차3월신입후기
    EVS37
    evs37 sdv
    현차떨
    오블완챌린지
    tar압축풀기
    심포지움
    tar 파일
    evs37sdv
    자율주행자동차
    자율주행
    현차 3월 신입 서류
    자율주행작품
    우분투터미널
    software defined vehicle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚱이, not a starfish
[백준] 5635번: 생일
상단으로

티스토리툴바