백준 1018 체스판 다시 칠하기 풀이 python, java
문제로이동 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 목차 문제 설명 8*8 크기의 체스판을 완전탐색합니다. 즉, 크기가 8*8보다 더 큰 경우 위치를 옮겨가며 확인해야 합니다. 왼쪽부터 오른쪽으로 스캔하듯 모두 훑어줍니다. 가로 탐색이 끝났다면 이제 세로축을 한 칸 증가시켜야겠죠? 한 칸 내린후 위와 동일하게 오른쪽으로 쭉 가야합니다. 어떤 로직인지 이해 하셨나요? 그럼 최종적으로 아래 그림처럼 탐색을 마칩니다. 자. 이제 위와같은 체스판이 아닌 흑백이 섞인(또는 뒤죽박죽) 체스판 모양이 입력됩..
byOnlineJudge··
백준 10096 세 친구 풀이 python, java
문제로이동 10096번: 세 친구 준규, 해빈, 진욱이는 다음과 같은 게임을 한다. 먼저, 준규가 문자열 S를 고른다. 그 다음, 해빈이는 S의 뒤에 S를 붙인 새로운 문자열 T를 만든다. 마지막으로 진욱이는 문자열 T의 어딘가(시작이 www.acmicpc.net 목차 테스트케이스 백준에서는 첫 번째 테스트케이스만 제공됩니다. NOT IMPOSSIBLE과 NOT UNIQUE 조건이 명시는 되어있는데 뭔가 이상해서 찾아보니 입력이 안된건지 더 있길래 가져왔습니다. 참고하시면 됩니다. 문제 설명 자세한 풀이 방법은 소스코드 Python의 주석처리를 참고하시기 바랍니다. 처음엔 모든 알파벳이 같은 경우를 생각하지 않고 아니 이게 맞는데 왜 틀려?? 라고 생각했다가 3번의 WA를 받고 깨우쳤습니다.. Pytho..
byOnlineJudge··
백준 1002 터렛 풀이 python, java
문제로이동 목차 문제 설명 알고리즘 문제라기 보다는 수학에 많이 가깝습니다. 두 원을 그려서 교점(겹치는 점)을 찾아내는 문제이며, 정답률이 많이 낮은 것으로 봐서는 여러 경우의 수를 고려하지 못했던 것 같습니다. 물론 저도 정답률 낮추는 데 한 몫 했습니다 ^^ 소스코드도 위와 같은 순서로 분리되어 있습니다. 1. 원이 완전히 겹치는 경우 (출력값 0) 두 원의 거리가 0이면서 반지름도 같은 경우를 말합니다. 2. 원이 한쪽 면만 닿는 경우 (출력값 1) (내접) 두 원의 거리 == 원1 반지름 + 원2 반지름 단, 원1 반지름과 원2 반지름의 길이를 비교해서 작은 값, 큰 값으로 분류해도 되지만 편의상 절대값 abs를 이용했습니다. (외접) 두 원의 거리 - r1 = r2 아래 그림을 참고 바랍니다...
byOnlineJudge··
백준 2217 로프 풀이 python, java
문제로이동 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 목차 문제 설명 그리디 문제는 규칙을 파악하는게 중요합니다. 로프 여러개를 사용해 병렬로 무게를 들 수 있습니다. 이 때, W/K(갯수) 만큼의 무게가 걸리게 됩니다. 즉, {나를 포함한 나보다 무게가 큰 로프 수 * 내 로프 = 최종 무게}가 성립됩니다. 1 5 3 2 4 이렇게 입력되었다고 가정하면 이 Array를 정렬해 줍니다. 5 4 3 2 1 내림차순이 편하긴한데, 오름차순도 index 접근값만 바꿔주면 되기 때문에 크게 상관없습니다..
byOnlineJudge··
백준 2638 치즈 풀이 python,java
문제로이동 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5≤N, M≤100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표 www.acmicpc.net 목차 문제 설명 하도 안풀려서 풀이를 볼까 말까 하다가 끝까지 붙잡고 풀어냈다. 공기는 0, 치즈는 1로 표시된다. 맨 가장자리는 반드시 공기층이 있다. 즉, 매 반복마다 bfs(0,0)만 돌리면 된다는 말이다!! 이미 방문한 구역을 visited로 체크해두고 공기층에 2번 노출되면 그 치즈는 없애버린다. 그리고 반드시!! 치즈가 없어진 구역은 방문한 것으로 표기해둔다. 그렇지 않으면 그 다음 큐가 돌아갈 때 방문을 하면서 다음 턴에 없어져야..
byOnlineJudge··
백준 13913 숨바꼭질4 BFS
문제로이동 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 목차 런타임에러 숨바꼭질, 숨바꼭질2, 숨바꼭질3에 이어 연계되는 문제입니다. 문제에 대한 자세한 설명은 없으니 미리 풀어 보시는 것을 권장합니다!! 사실 어렵지 않은 BFS 문제인데 왜 런타임 에러가 뜨는지 이해를 못하다가 1월 7일 BOJ에서 런타임 에러 업데이트로 이유를 보여주기 시작했습니다.. RecursionError.. 재귀 함수가 limit에 부딪혀 발생하는 문제였죠. 이 이유임을 확인하고 바로 통과했습니다..
byOnlineJudge··