본문 바로가기

코딩테스트15

[백준] 21608 - 상어 초등학교 (Python) 문제 출처 : www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 문제 풀이 : 삼성전자 2021년도 상반기 오전 문제중 첫번째 문제이다. 삼성전자의 기출문제를 보았다면 대부분 BFS,DFS + 구현 문제로 이루어져 있는 것을 알 수 있다. 때문에 보통 필자는 삼성전자의 문제를 풀땐 어떤 부분들을 구현해야하는지 나누는걸 첫번째로 한다. 요즘 추세로는 구현해야하는 것들을 문제에서 친절하게 주어주는 경우도 많다. 때문에 문제를 잘 읽어보는 것이 굉장히 중.. 2021. 5. 10.
[백준] 2636 - 치즈 (Python) 문제 출처 : www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 문제 풀이 : 이 문제를 풀때 본인이 생각하기에 중요한 점은 공기에 접촉한 치즈와 접촉하지 않은 치즈를 구분하는 점이라고 생각한다. 우선 각 맵에 있는 치즈를 다 세주었고, 또한 맨 끝에 있는 벽들은 값을 2로 바꿔서 벽을 체크해주었다. 이후 공기와 접촉한 치즈 하나를 입력으로 받아서 BFS탐색을 하며 공기와 접촉 된 치즈를 체크해 주었다. 이때 공기와 접촉하지 않는 경우에 대한 condition 을 따로 체크해주었.. 2021. 3. 12.
[백준] 7576 - 토마토 (Python) 문제 출처 : www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 풀이 : BFS로 문제를 풀었다. 다른 문제들도 그렇지만 (미로탐색 문제라던지 앞에 풀었던 다른 BFS문제들 처럼) 이 문제와 같이 일련의 단계를 끝내고 시간, 횟수를 +1 하는 경우에는 나는 대부분 deque(혹은 stack) 자료 구조를 2개 를 사용한다. 각각을 1번 ,2번 dq라고 본다면 1번 dq에 대한 while문 , 2번 dq에 대한 while문을 작동 시킨다. .. 2021. 3. 9.
[백준] 10157- 자리배정 (Python) 문제 출처: www.acmicpc.net/problem/10157 10157번: 자리배정 첫 줄에는 공연장의 격자 크기를 나타내는 정수 C와 R이 하나의 공백을 사이에 두고 차례대로 주어진다. 두 값의 범위는 5 ≤ C, R ≤ 1,000이다. 그 다음 줄에는 어떤 관객의 대기번호 K가 주어진다. www.acmicpc.net 문제 풀이 전략: 첫번째 시도 : 모서리에 대한 규칙성이 있을까? 문제를 읽어보면 각 모서리들이 전체 격자의 r,c 와 어떠한 연관성이 있다고 판단 되었기 때문에 그 규칙성을 찾아보려고 했다. 물론 찾지 못해서 FAIL 다 풀고나서 이와 비슷한 방법을 찾아보니 달팽이 배열이라는 개념이 있었다. 모서리가 아니라 방향과 증감, idx에 대해서 접근했으면 아마 찾았을 듯하다. 달팽이 배열.. 2020. 12. 30.
반응형