분류 전체보기 (69) 썸네일형 리스트형 [SW Expert Academy / 5658] 벽돌 깨기 1. 문제이해 입력값: N : 구슬 쏠 수 있는 횟수 W : 벽돌 맵 가로 H : 벽돌 맵 세로 유의해야 할 점: 벽돌을 깨면 4방향으로 그 벽돌의 수-1 만큼 벽돌을 깨게 된다. 출력값: 최대한 많은 벽돌을 깨트리고 남은 벽돌의 수 2. 문제 풀이 법 사용한 방법: 1. comb() 함수로 중복 조합을 사용하여 어떤 열의 벽돌을 깨 트릴지 순서를 정한다. 2. play() 함수로 bfs와같이 queue를 이용하여 깬다. 3. zero() 함수로 벽돌들을 아래로 내려준다. 3. 어려웠던 점 1. 문제 이해를 아예 못했었다. 2. 어떻게 벽돌을 다시 내릴지에대해서 잘 몰랐었다. 1. zero 함수에서 시간을 좀 더 줄일 방법이 있을 것이다 import sys import cop.. [백준 / 17471] 게리맨더링 1. 문제 이해 입력값: 구역의 개수 N (2 [SW Expert Academy / 5658] 보물상자 비밀번호 1. 문제이해 입력값: N (4의 배수, 8이상 28이하) , K (K번째로 큰 수) N개의 숫자 (0이상 F이하 16진수) 유의해야 할 점: 보물 '상자' 이므로 4면이 존재하게 된다. 비밀번호는 시계방향으로 1칸씩 움직일수 있다. N이 4의 배수인 이유!! 한 면에 N//4개의 숫자들이 위치해 있다! 따라서 0번 ~~ N//4-1번 움직이는 경우만 보아도 전체 비밀번호 가짓수를 구할 수 있다. (이걸 몰라서 해맸음!) 출력값: 전체 비밀번호 중 오름차순으로 했을 때, K번째로 큰 수 ( 중복없이) 2. 문제 풀이 법 사용한 방법: 16진수를 10진수로 바꾸는 방법 1. 시작을 한 칸씩 미루면서 시계방향으로 움직이는것처럼 하려고 처음에 입력받는 비밀번호를 2번 반복해서 받았다. 2. 총 N//4 번 돌.. [백준 / 2636] 치즈 1. 문제 이해 입력값 : N , M 행 열 (최대길이 100) 치즈 없는 칸 0, 치즈 있는 칸 1로 주어집니다. 유의해야 할 점 : 치즈가 공기와 접촉하게 되면 접촌된 칸은 한 시간이 지나면 없어진다. 치즈의 구멍 안에는 공기가 없지만, 녹아서 뚫리면 공기가 들어간다. 출력값 : 치즈가 모두 녹아서 없어지는 시간 모두 녹기 전 남아있던 치즈조각의 칸 갯수 2. 문제 풀이 법 사용한 방법: 1. bfs 2. 4방향 제일 위에 정의하는거 : 각 시간당 남아있는 치즈의 갯수를 저장할 배열 : cz' 각 시간마다 실행되는 bfs 함수에서 하는 일 : visited 를 초기화해줍니다. bfs(0,0)으로 불러서 바깥만 탐색 -> 치즈가 뚫리면 탐색하면서 내부도 이어 줄 수 있습니다. 탐색한 바깥마다 4방향 탐.. [백준 / 17135] 캐슬 디펜스 1. 문제 이해 N 행, M 열, D 최대 거리 N 행의 끝에 M개만큼 성이 있는데, 각 성에 최대 한 명씩 총 3명의 궁수가 있다. 그리고 배열로서 적이 주어진다 (1) 한 턴당, 적들은 행 +1 이 된다. ( 성으로 가까워진다) 성에 도달하게 되면, 적은 소멸 한다. -조건 : 직각 거리로 D 보다 작으면서 가장 가까운 적을 골라 죽인다 ( 같은 거리가 있을 땐 열의 번호가 작은 거) 2. 문제 풀이법 먼저, 궁수 3명을 성에 위치시킬 방법은 조합으로 구하였다 ! 그리고 조합이 만들어졌을 때, 게임을 실행시키는 방향으로 진행하였다. 게임이 실행될 때, 적들을 탐색하여 enemies라는 변수에 list 형태로 담았다! 그 enemies 가 다 없어질 때까지 반복문을 돌린다 enemies 반복문 내에선,.. 이전 1 ··· 6 7 8 9 다음