백준 알고리즘 7

삼성 #17070 파이프 옮기기1

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 오답 풀이 1 import sys # N = int(sys.stdin.readline()) # board = [ list(sys.stdin.readline().rstrip()) for _ in range(N)] stdin = open('input.txt', 'r') N = int(stdin.readline()) board = [list(map(int, stdin.readl..

백준 알고리즘 2021.08.19

삼성 #16637 괄호치기 문제

https://www.acmicpc.net/problem/16637 틀린 풀이 1 Merge Sorting과 유사하게 DP개념으로 접근하여 문제를 분할하여 해결하고자 했다. 각각의 Subgroup의 최대값을 계산하고 최종 합산하는 방식으로. --> 좌에서 우로 계산해야 하는데, 분할정복법으로 하면 subgroup 에서 이미 계산이 되어버려서 규칙이 위배된다. ex1) 1+2+3+4*5-6*7*8*9*0 1+2+3+4*5 - 6*7*8*9*0 1+2+3+4*5 - ( 6*7)*8*(9*0) 1+2+3+4*5 - ( 6*7) * 8* ( 9*0) ----------------------------------------------- 1+2+3+4*5 - 0 // 좌우 계산이라면 절대 양수가 나올수없는데 결과값..

백준 알고리즘 2021.08.17

백준 #10989

진짜 어려웠다. 특히 메모리제한이 극악이었다. 시간 제한의 경우 툴팁에 counting sorting 사용하라고해서 괜찮았다. 1. 메모리 제한 꼭 확인할것. 대개 메모리는 512, 256MB 만큼 넉넉히 주는 편이어서 입력을 모두 받고 나서 작업을 수행한다. 하지만 여기선 8MB로 굉장히 작은 편인데, 입력을 받자마자 바로 수행 할 수가 있다. 2. 갯수 확인할 것. 입력된 수의 갯수 N은 최대 10^7까지지만 수는 10,000보다 작다고 한다. 입력값의 범위도 중요한 힌트가된다. import sys N = int(sys.stdin.readline()) count = [0 for _ in range(10001)] for i in range(N): val = int(sys.stdin.readline())..

백준 알고리즘 2021.06.23

백준알고리즘 기본

입력 부분 readline() 하나의 줄을 그대로 읽어옴. 공백 그리고 줄바꿈(\n) 까지 그대로 읽음. a = "ABCDE EFG\n" a.split() ["ABCDE" "EFG"] split() 공백,줄바꿈 기준으로 전부 분할함. a= "ABCDE EFG\n" a.split() ['A', 'B', 'C', 'D', 'E', ' ', 'E', 'F', 'G', '\n'] rstrip() 오른쪽 줄바꿈 기호 제거 가능 예시 !! WBWBWBWB BWBWBWBW WBWBWBWB board = [list(f.readline().rstrip()) for _ in range(N)] rstrip()으로 줄바꿈 제거하고 list()로 묶으면 [ 'w', 'b','w','b'...] 처럼된다. 인덱스 문제 N,M 행..

백준 알고리즘 2021.06.21