알고리즘/BOJ

백준 21608번 상어 초등학교

꾸준함. 2021. 4. 28. 00:28

문제 링크입니다: www.acmicpc.net/problem/21608

 

21608번: 상어 초등학교

상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호

www.acmicpc.net

단순 구현 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 각 학생마다 좋아하는 학생들이 4명이 있으므로 해당 정보를 map 자료구조로 저장합니다. (likeFriends)

2. 입력받은 학생 순서로 자리를 배치하는데 문제에서 주어진 규칙대로 배치를 진행하면 됩니다.

  • 비어있는 칸 중에서 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정한다.
  • 1을 만족하는 칸이 여러 개이면, 인접한 칸 중에서 비어있는 칸이 가장 많은 칸으로 자리를 정한다.
  • 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가장 작은 칸으로, 그러한 칸도 여러 개이면 열의 번호가 가장 작은 칸으로 자리를 정한다.

3. 만족도를 구해줍니다.

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 21610번 마법사 상어와 비바라기  (1) 2021.04.29
백준 21609번 상어 중학교  (1) 2021.04.28
백준 19771번 Сапсан  (0) 2021.04.27
C++ 백준 2935번 소음  (0) 2021.04.26
백준 2921번 도미노  (0) 2021.04.25