Algorithem/백준 PS with code

Algorithem/백준 PS with code

백준 입문자를 위한 IDE 및 제출 팁

파이썬 IDE 활용하기 익숙한 IDE 에서 풀고 디버깅까지 마친 후에 코드만 복붙으로 제출하는게 가장 편한 것 같습니다. 입력값을 전달하는 가장 좋은 방법은 input.txt 를 하나 만들어서 거기에 복붙해넣고 돌리는 방식입니다. 다음은 제 백준용 환경인데요, baekjoon.py 에 코드를 작성하고, input.txt 에 인풋값을 복붙하면서 돌려서 테스트합니다. 주피터노트북도 만들어놓긴 했지만 쓸일은 없더라구요..ㅎㅎ 파이썬 파일 하나로 충분합니다. 완성한 코드는 baekjoon.py 파일을 고대로 복사해서 daily_baekjoon 폴더에 붙여넣고 파일명만 수정해서 깃헙에 푸시합니다. 이건 그냥 개인적인 만족감으로 하고 있습니다. 중요한건 baekjoon.py 에 항상 적혀있는 코..

Algorithem/백준 PS with code

백준 #2304 - [S2] 창고 다각형 : 구현

(python3) 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 양쪽에서 접근하기 계단식으로 기둥 주변을 꽉꽉 채워주면 되는데요, 가장 높은 기둥을 기준으로 앞, 뒤를 나눠서 생각해야합니다. 앞부분은 직관적으로 이해하기가 쉽습니다. 쭉 탐색하면서 지금까지 높이중 가장 높았던 높이를 유지하면 됩니다. 문제는 꼭대기를 찍고 다시 내려가는 부분이죠. 이것도 정방향으로 해결하려면 지금 기둥부터 앞으로 나올 기둥들 중 가장 높은걸 채택해야합니다. 미래를 예측할순 없죠. 그래서 뒷부분은 뒤에서부터 탐색..

Algorithem/백준 PS with code

백준 #1406 - [S2] 에디터 : 스택

(python3) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 커서 기준 좌우로 나눠서 스택을 활용하기 배열의 중간에 값을 추가하거나 삭제하는건 굉장히 고된 일입니다. 이 문제의 경우 가운데 값을 고치게 되면 시간초과가 발생합니다. 커서 기준으로 배열을 나눠서 관리하면 두 배열의 맨 뒤 값만 고치면 됩니다. 이 경우 배열로 풀려면 커서 오른쪽 문자열 배열은 순서를 거꾸로 관리해야합니다. 왼쪽끝에서 떼어낸건 오른쪽 맨 앞에 붙어야하기 때문이죠. 저는 이것까지 고려하지않고 직관적으로 작성하기 위해서 collec..

Algorithem/백준 PS with code

백준 #2098 - [G1] 외판원 순회 : DP,비트마스킹

(python3) 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 유명한 문제 알고리즘 이론에 따로 정리해봤습니다! 아래 글을 참고해주세요 [TSP] 외판원 순회 문제 정의 - 해밀턴 순환 N개의 연결된 도시가 있고, 도시들을 연결하는 길이 있습니다. 길을 통과하는데는 비용이 듭니다. 길마다 비용은 다를 수 있고, 오는길과 가는길의 비용도 다를 수 있습 jamong-5.tistory.com my solved.ac : solved.ac 알고리즘 문제해결 학습의 이정표 🚩 B..

Algorithem/백준 PS with code

백준 #20056 - [G4] 마법사 상어와 파이어볼 : 구현

(python3) 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 차근차근 구현하기 특별한 방법론 없이 차근차근 구현해주었습니다. r,c 가 0부터 시작하게 바꿔주었고, 파이어볼 정보는 단순 list 로 관리하면서 파이어볼을 합칠때만 잠시 dict 에 옮겨주었습니다. 자세한 사항은 주석으로 남겼습니다. 코드 import sys def solution(input) : N,M,K = list(map(int,input().split())) fire_ball = [] # (r,c..

Algorithem/백준 PS with code

백준 #16234 - [G5] 인구 이동 : 그래프탐색, 그룹핑

(python3) 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net DFS로 그룹 지어주기, 재귀 최대 깊이 설정 open_border() 에서는 모든 칸들에 대해 DFS 를 수행해서 그룹을 만들어줍니다. 이미 그룹이 정해진 노드는 DFS 를 수행할 필요가 없으므로 넘어갑니다. population_move(g) 에서는 최대 그룹 번호를 넣어서 dict 의 초기 세팅을 진행합니다. dict에는 그룹마다 총 인구수, 포함되는 나라 수, 나라의 좌표를 저장합니다. dict 를 완성한 뒤, dict 에 저..

jamong5
'Algorithem/백준 PS with code' 카테고리의 글 목록 (4 Page)