백준 16954 움직이는 미로 탈출 python
OnlineJudge2021. 4. 20. 11:12백준 16954 움직이는 미로 탈출 python

문제로이동 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 목차 시작하기 전에 2개월 전에 스터디에서 공통 문제로 풀었다가 실패했던 문제였습니다. 이번엔 노트에 로직을 정리하고 1WA를 맞은 뒤 이거다! 싶어서 수정했는데 정답이었고 2회에 걸쳐 로직을 수정/추가했습니다. 접근 방법 벽이 움직인다는 점에서 캐슬디펜스 문제와 비슷하다고 생각했습니다. 비슷한 방식으로 접근했다가 큰 코 다쳤는데 그 이유는 캐슬 디펜스에선 주인공 위치가 고정되어 있지만, 이번 문제는 사방탐색(상하좌우) 뿐만 아니라 대각선 이..

백준 2263 트리 풀이 pypy3, python3, java
OnlineJudge2021. 2. 4. 23:49백준 2263 트리 풀이 pypy3, python3, java

문제로이동 목차 문제 설명 재귀함수를 이용해 풀었습니다. 각 order의 특징을 살펴보면 inOrder : LVR (왼쪽-뿌리-오른쪽) postOrder : LRV (왼쪽-오른쪽-뿌리) preOrder : VLR (뿌리-왼쪽-오른쪽) 이러한 특징을 가졌는데, inOrder와 postOrder를 잘 보시면 구조가 다르기 때문에 이를 이용하여 풀어야 합니다. 1. postOrder는 뿌리의 위치가 항상 맨뒤에 존재합니다. 그래서 매 번 가장 마지막 노드를 가장 먼저 출력합니다. 2. 해당 뿌리 위치 왼쪽까지를 재귀합니다. 3. 해당 뿌리 위치 오른쪽부터 재귀합니다. 4. 1~3을 반복합니다. 문제 후기 pypy3와 python3의 차이점을 몸소 경험했던 문제였습니다. 신선한 충격이었고 덕분에 멘탈이 탈탈 털..

백준 1018 체스판 다시 칠하기 풀이 python, java
OnlineJudge2021. 1. 30. 00:34백준 1018 체스판 다시 칠하기 풀이 python, java

문제로이동 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 목차 문제 설명 8*8 크기의 체스판을 완전탐색합니다. 즉, 크기가 8*8보다 더 큰 경우 위치를 옮겨가며 확인해야 합니다. 왼쪽부터 오른쪽으로 스캔하듯 모두 훑어줍니다. 가로 탐색이 끝났다면 이제 세로축을 한 칸 증가시켜야겠죠? 한 칸 내린후 위와 동일하게 오른쪽으로 쭉 가야합니다. 어떤 로직인지 이해 하셨나요? 그럼 최종적으로 아래 그림처럼 탐색을 마칩니다. 자. 이제 위와같은 체스판이 아닌 흑백이 섞인(또는 뒤죽박죽) 체스판 모양이 입력됩..

백준 10096 세 친구 풀이 python, java
OnlineJudge2021. 1. 29. 22:49백준 10096 세 친구 풀이 python, java

문제로이동 10096번: 세 친구 준규, 해빈, 진욱이는 다음과 같은 게임을 한다. 먼저, 준규가 문자열 S를 고른다. 그 다음, 해빈이는 S의 뒤에 S를 붙인 새로운 문자열 T를 만든다. 마지막으로 진욱이는 문자열 T의 어딘가(시작이 www.acmicpc.net 목차 테스트케이스 백준에서는 첫 번째 테스트케이스만 제공됩니다. NOT IMPOSSIBLE과 NOT UNIQUE 조건이 명시는 되어있는데 뭔가 이상해서 찾아보니 입력이 안된건지 더 있길래 가져왔습니다. 참고하시면 됩니다. 문제 설명 자세한 풀이 방법은 소스코드 Python의 주석처리를 참고하시기 바랍니다. 처음엔 모든 알파벳이 같은 경우를 생각하지 않고 아니 이게 맞는데 왜 틀려?? 라고 생각했다가 3번의 WA를 받고 깨우쳤습니다.. Pytho..

백준 2589 보물섬 풀이 python, java
OnlineJudge2021. 1. 21. 20:21백준 2589 보물섬 풀이 python, java

문제로이동 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 목차 문제 설명 보통 보물의 위치가 정해져 있고 특정 위치에서 해당 보물들을 찾는 문제라면, 이 문제는 그 보물을 직접 찾고 최단거리를 출력해야 합니다. 이 문제를 읽고 나면 아래와 같은 의문점이 생깁니다. 보물을 찾는 방법? 최단 거리는 어떻게 구할 것인가? 같은 좌표인데 거리가 다른경우? 좌표가 같다면 거리가 짧은 것으로 갱신 아예 bfs를 써서 돌리면 최단 거리에서 return되기 때문에 걱정없음 이처럼 여러 가지 의문점이 생겼었는데 정리하자면 이렇..

백준 10808 알파벳개수 풀이 python, java
OnlineJudge2021. 1. 20. 15:18백준 10808 알파벳개수 풀이 python, java

문제로이동 목차 아직 Java가 많이 서툴고, 변수나 리스트 배열 등 기초적인 스킬이 부족해 난이도 가리지 않고 풀고 있습니다. 언제든 피드백 환영입니다. 더 나은 스킬이 있다면 배우겠습니다. 소스 코드 Python - input으로 문자열을 입력받습니다. - 알파벳 a ~ z까지 총 26개이므로 lst배열에 [0]을 총 26개로 초기화 했습니다. - ord(문자)는 문자를 숫자로 바꿔주는 함수이므로 알파벳 a의 아스키코드인 97을 빼주어 lst 배열의 index와 맞춰주었습니다. s = input() lst = [0]*26 for i in s: lst[ord(i)-97]+=1 for i in lst: print(i,end= ' ') Java8 - python에서는 3번째 코드라인 String에 Char..

백준 17135 캐슬디펜스 풀이 python, java
OnlineJudge2021. 1. 19. 21:52백준 17135 캐슬디펜스 풀이 python, java

문제로이동 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 목차 문제 설명 비슷한 레벨의 BFS문제보다 어려웠다고 생각합니다. 성벽은 가장 아래 행(안보이는 곳)에 존재합니다. 해당 성벽에는 아처가 3명 있습니다. 이 아처의 가능한 모든 위치를 고려하셔야 합니다.(3중 for문으로 해결) 적군은 1턴(아처가 공격하고난 후) 후에 성벽으로 1칸 전진합니다. 성벽에 닿게 되면 그냥 사라집니다. 아처는 동일한 거리에 위치한 적군이 여러명일 경우, 가장 왼쪽에 있는 적군을 우선으로 죽입니다. 이 경우에 한 적군이 아처 여러명에게..

백준 15954 인형들(카카오 2018 예선 문제)
OnlineJudge2021. 1. 13. 22:23백준 15954 인형들(카카오 2018 예선 문제)

문제로이동 15954번: 인형들 첫 번째부터 세 번째까지의 인형을 선택하면 표준편차는 2/3의 양의 제곱근이 되고, 이 때 표준편차가 최소가 된다. 두 번째부터 네 번째까지의 인형을 선택하는 경우와, 세 번째부터 다섯 번째 www.acmicpc.net 목차 시간 초과 2년 전의 나.. 소스코드를 봤더니 문제 이해도 제대로 못하고 무작정 제출만 했던 것 같습니다. ㅠㅠ 틀렸습니다 2년 전의 저를 믿고 pypy3로 제출했더니 역시나 오답 ㅎㅎ 소스를 아예 갈아엎고 다시 시작합니다. 문제 이해를 하고 다시 접근해 풀었습니다. 문제 설명 단순 브루트포싱 문제입니다. 페이지에 문제 설명이 꽤 길지만 요약하자면 - 총 N개의 인형, K개 이상의 인형을 선택해야 한다. (즉, K의 크기가 N까지 커질 수 있다는 뜻)..

백준 3190 뱀 풀이 python,java
OnlineJudge2021. 1. 12. 23:15백준 3190 뱀 풀이 python,java

문제로이동 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 목차 런타임 에러(IndexError) 반례를 찾기 전까진 "맞왜틀"을 호소했습니다. IndexError가 일어나는 이유를 몰랐거든요.. 하지만 검증 과정에서 문제가 있었습니다. 아래의 소스코드를 보면 필드를 벗어나는 경우를 검증하지 않습니다. BFS/DFS때 흔히 하는 0=n or 0>ny or ny>=n or field[ny][nx]>1:#엔딩 조건 return move+1 if field[ny][nx]==1:#사과를 만난 경우 field[ny][nx]=..

백준 9328 열쇠 BFS
OnlineJudge2021. 1. 10. 22:21백준 9328 열쇠 BFS

문제로이동 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 목차 접근 과정 오 열쇠? 비트마스킹이네 달이 차오른다 가자 문제랑 비슷해 보이는데 # 말도 안되는 생각을 해보았다.. visited = [[[0]*(1

image