본문 바로가기

Coding22

(그리디) 백준 1543번 _ 문서검색 (+ Python 3 와 PyPy3는 무엇이 다를까) 이 문제는 맞은 문제이다. N = input("") k = input("") print(N.count(k)) 단 세줄의 코드를 PyPy3로 제출하면 정답이 나오는 어떻게 생각하면 되게 쉬운 문제이다. 그러나 이렇게 따로 정리하는 것은 두가지 이유 때문이다. 1. 위 파이썬 코드를 Python3 로 제출하면 런타임오류가 나와서 PyPy3로 제출했더니 정답처리가 되었다. 2. count라는 파이썬의 치트키를 사용하지 말고 직접 로직을 구현해보고 싶었다. 1. Python3 vs PyPy3 우선 Python3 와 PyPy3가 무엇이 다른지부터 알아보자 PyPy3는 파이썬으로 만든 파이썬이다. 우리가 일반적으로 사용하는 Python은 C언어로 구현 되어있고 그 구현체를 CPython이라고 한다. 이는 가장 처음.. 2022. 2. 5.
(그리디) 백준 21758번 _ 꿀 따기 [Python] https://www.acmicpc.net/problem/21758 21758번: 꿀 따기 첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다. www.acmicpc.net 그리디 알고리즘에서 "그리디" 즉 탐욕적이라는 말은 "현재 상황에서 지금 당장 좋은 것만 고르는 방법"을 의미한다. 이 문제를 풀면서 누적합과, A = max(A, B)를 통해 최댓값을 계속 업데이트 해주는 두 가지 개념에 대해 배울 수 있었다. 문제를 예시로 누적합에 대해 좀 더 자세히 말해보면, 우선 꿀 합에 대한 누적합은 다음과 같다. # 코드 (문제에 주어진 예시) n = 7 honey_place = [9,9,4,1,4,9,9] prefix_sum=[] prefix_sum.append(a[0]) for i in range(1,n).. 2022. 2. 2.
[알고리즘 이론] 이진 탐색(Binary Search)에 대해 알아보자(feat. 파라메트릭 서치) - Reference (이코테 2021 강의 몰아보기) 5. 이진 탐색 "이것이 코딩 테스트다 with 파이썬" [한빛미디어]이것이 취업을 위한 코딩 테스트다 with 파이썬 COUPANG www.coupang.com 이코테 나동빈님의 강의와 책을 토대로 공부한 내용을 정리하였습니다. 0. 글 쓰기에 앞서 백준 17179번 케이크 자르기 문제를 풀다가 이진 탐색(이분 탐색)과 파라메트릭 서치에 대한 정리가 필요함을 느꼈다. 이진 탐색과 파라메트릭 서치란 무엇이고 대표적으로 어떠한 문제들이 있는지 알아보자. 1. 이진 탐색(이분 탐색) 탐색 알고리즘은 크게 순차 탐색과 이진 탐색으로 나뉜다. 순차 탐색이란 리스트 안에 있는 특정 데이터를 찾기 위해 앞에서부터 순서대로 데이터를 확인하는 방법이다. 그리나 순.. 2022. 1. 27.
(그리디) 백준 2872번 _ 우리집엔 도서관이 있어 [Python] https://www.acmicpc.net/problem/2872 2872번: 우리집엔 도서관이 있어 상근이는 컴퓨터 공학의 일인자가 되기 위해 책을 매우 많이 구매했다. 하지만, 집에 책장이 없어서 책을 탑처럼 쌓아놓고 있다. 오늘은 오랜만에 상근이가 집에서 휴식을 취하는 날이다. 상근 www.acmicpc.net 내가 생각하는 그리디 알고리즘의 핵심 키워드는 "규칙"을 것이다. 이 문제는 책 배열 정리의 규칙을 찾는 것이 생각보다 어려워서 풀지 못했던 것 같다. 또한 책을 빼는 순서까지 고려했었는데 다시 생각해보니 순서는 고려할 필요가 없다. 중요한 것은 "몇 권의 책을 재배열해야 하냐"이고 순서는 어차피 정해져있기 때문에 재배열 해야 할 책의 권수가 곧 정답이 될 것이다. 두 가지 예시를 들어보면,.. 2022. 1. 25.
OpenCV: scipy ndimage(다차원 이미지 처리) scipy.ndimage는 임의의 차원의 어레이로 동작하도록 설계되어 일반적인 영상 처리 및 분석 기능을 제공합니다. 즉 같은 사진을 회전시켜 여러 각도에서 테스트 해 보고싶을 때 유용합니다. import matplotlib.pyplot as plt import cv2 from scipy import ndimage def mosaic(img,rect,size): (x1,y1,x2,y2) = rect w = x2 - x1 h = y2 - y1 i_rect = img[y1:y2,x1:x2] i_small = cv2.resize(i_rect,(size,size)) i_mos = cv2.resize(i_small,(w,h),interpolation = cv2.INTER_AREA) img2 = img.copy().. 2021. 3. 15.
OpenCV : 얼굴인식은 어떻게 되는가 OpenCV의 Haar-like feature 학습기 이용. -> 얼굴 데이터들을 학습해 눈, 코, 입 과 같은 요소의 위치 관계를 확인하고 얼굴인지 확인하는 방법 얼굴인식 예시 (출처 : towardsdatascience.com/computer-vision-for-beginners-part-3-79de62dbeef7 ) 예를 들어 '코'는 얼굴 중앙 쪽에 위치해있으며 밝고 그 양 옆은 어둡습니다. 또한 눈은 눈썹이 있으므로 윗부분은 약간 어둡고 아랫부분은 밝습니다. 이처럼 각 요소의 명암 패턴을 결합해 얼굴을 인식 할 수 있습니다. 2021. 3. 15.