문제 https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 백트래킹 코드 import sys input = sys.stdin.readline N, M = map(int,input().split()) LIST = sorted(list(map(int,input().split()))) total = [] visited = [0 for _ in range(N)] def back(s): if len(total) == M: print(*total..
전체 글
공부하고 삽질한 것 정리하는 블로그입니다. 코딩 테스트 대비를 위한 백준-프로그래머스 문제 풀이, pytorch/ubuntu 에러 해결법, 논문 리뷰 등을 올립니다.opencv2를 이용하여 이미지 색상 히스토그램 구하기 히스토그램이란? 픽셀 값 분포를 그래프형식으로 표현한 것이다. 히스토그램을 통해서 이미지의 밝기나 명암비를 분석할 수 있다. 이런 꼴을 가지는데, x축은 픽셀의 명암값 y축은 픽셀의 갯수를 나타낸다. 위 이미지에서 numpy(plt)를 활용한 방법, cv2를 활용한 방법 두가지로 이미지의 색상 히스토그램을 구해보겠다. 히스토그램 그리기 1) cv2 히스토그램 cv2를 활용하여 각 color scale(gray는 grayscale)에 해당하는 픽셀의 갯수를 구하고 막대 그래프 형태로 표현하면, 아래와 같은 결과가 나온다. import matplotlib.pyplot as plt import cv2 ####### gray scale gray = cv2...
input( ) : - 사용자의 input에서 개행문자를 제거한 후 리턴한다. - 사용자의 prompt를 받아 사용할 수 있다. name = input("Please enter your name: ") print("Hello, " + name) sys.stdin.readline( ): - 사용자의 input을 개행문자까지 그대로 받아온다. - 인자로 양수값을 받을 수 있는데, 사용자의 input에서 몇 byte(몇 글자)를 받아올지 입력받는다. 왜 sys.stdin.readline가 내장함수 input보다 빠를까? - 예를 들어, "나는 A다.(\n) 나는 B다. (\n) 나는 C다. (\n) 나는 D다. (\n)" 라는 입력을 받을 때, input()의 경우 각 문장을 \n가 나올 때마다 바로바로 메모..
문제 https://www.acmicpc.net/problem/22953 문제 풀이 이분탐색, 백트래킹, 코드의 주석 참조 코드 import sys input = sys.stdin.readline N, K, C = map(int,input().split()) A_list = list(map(int,input().split())) #격려를 요리 중에 하는게 아니고 최초에 1회만 함 def food_cnt(t_list, t): #t초에 만들 수 있는 요리의 갯수 total = 0 for i in range(len(t_list)): total += t//t_list[i] return total def total_time(t_list, K): #K개의 요리를 하는데 A_list[i]가 몇번씩 반복되는가 #완전탐..
문제 https://www.acmicpc.net/problem/12919 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net 문제 풀이 bfs나 dfs로 풀이 bfs, dfs 둘 다 S부터 시작하면 시간초과,, T부터 시작해야 연산횟수를 줄일 수 있다. S부터 시작하면 시간초과임. 방문한 지점을 또 방문하는 경우는 없으니 visited는 처리하지 않아도 된다. 코드 1) dfs import sys input = sys.stdin.readline S = input().stri..
문제 https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 문제 풀이 dp로 푸는 경우) https://cccaaa.tistory.com/84 처럼 dp를 구성하고, 3이하의 표현방법이 나올때까지 돌리기.. 그림으로 나타내면 이므로, n dp[n]: print(-1) exit() while True: if n
문제 https://www.acmicpc.net/problem/11123 11123번: 양 한마리... 양 두마리... 얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" www.acmicpc.net 문제 풀이 섬의 갯수를 찾는 bfs 코드 import sys input = sys.stdin.readline import collections def bfs(MAP): visited = [[0 for _ in range(len(MAP[0]))] for _ in range(len(MAP))] move = {(-1,0),(0,-1),(1,0),(0,1)} total = 0 f..
문제 https://www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net 문제 풀이 구현문제.. rotatition과 melt에서 최적화가 중요한 부분,, 코드 import sys input = sys.stdin.readline import collections ''' 13:00 시작 파이어스톰 1) 격자를 2^L x 2^L 크기의 부분 격자로 나누기 2) 모든 부분 격자를 시계방향으로 90도 회전 3) 얼음이 있는 칸 3개 or 그 이상과 인..