Programming/Problem Solving(21)
-
[BOJ] 21610 마법사 상어와 비바라기 - Python
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 항상 그렇듯 삼성 구현 문제는 꼼꼼히 구현만 잘 하면 된다. 없어질 구름과 생긴 구름을 잘 관리해 주면 된다. from collections import deque N, M = map(int, input().split()) dx = [0, 0, -1, -1, -1, 0, 1, 1, 1] dy = [0, -1, -1, 0, 1, 1, 1, 0, -1] arr = [list(map(int, i..
2021.10.18 -
[BOJ] 14503 로봇 청소기 - Python
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 이런 문제는 그냥 bfs로 구현하는 거보다 while문 하나로 끝내는게 더 직관적인듯. 그냥 문제에 나와있는 조건별로 구현하면 된다. dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] # 북 동 남 서 N, M = map(int, input().split()) r, c, d = map(int, input().split()) arr = [] for i in range(N): ar..
2021.09.23 -
[BOJ] 19238스타트 택시 - Python
https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 전형적인 삼성 코테문제 bfs 문제로 해결하면 되는데, 조건을 유의해 줘야한다. 현재 위치에서 최단거리가 가장 짧은 승객, 그런 승객이 여러 명이면 행 번호가 가장 작은 승객, 그런 승객도 여러명이면 열번호가 가장 작은 승객. 이 조건만 유의해 가면서 문제를 풀면 된다. findPeoplebfs에서 heap에다가 넣어주면서 위 조건을 모두 만족시키도록 했다...
2021.09.23 -
[BOJ] 21609 상어 중학교 - Python
https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 전형적인 삼성 유형의 시뮬레이션 문제이다. 조건을 하나하나 안빠뜨리는게 중요한 문제인 것 같다. findMaxAndBreak 함수는 이 조건을 구현한 함수이다. 가장 큰 블록, 무지개 블록 수가 가장 많은 그룹, 행, 열 순으로 정렬 하려고 tuple에 앞에 -를 붙여 정렬시키고 뺄 때 -를 붙여서 빼주었다. rotate는 회전, gravity는 중력을 구현. 마지막에는 findMaxAndBr..
2021.09.22 -
[BOJ] 16929 Two Dots - Python
https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net bfs + 구현 문제이다. 사이클을 어떻게 처리할 지에 대한 생각이 조금 필요했던 문제이다. 나는 visit의 카운트로 처리를 했다. 다른 사람들은 어떻게 처리를 했는지 보러가야지.. from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] N, M = map(int, input().split()) arr = [[0]*M for _ i..
2021.08.31 -
[BOJ] 1938 통나무 옮기기 - Python
https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4
2021.08.24