전체 글

    [프로그래머스 C++] - 전화번호 목록

    문제 : 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 분석 접두어를 찾는 문제이다. 따라서 ..

    [파이썬 openCV 도형 인식] 게임 매직타일 매크로 [1]

    매직타일 매크로 openCV로 뭘 만들까 고민하다가 옛날에 했던 게임 중 하나인 '매직 타일' 생각이 나서 매크로를 만들어 봤다. 매직 타일은 간단한 리듬 게임이다. 매직 타일 소개 영상 보다시피, 검은색 타일을 화면 내에 있을 때 클릭하면 되는 게임이다. 그래서 구현 자체는 간단할 거라 생각했다. 타일 인식 방법으로 처음엔 템플릿 매칭 방법을 사용했다. 템플릿 매칭 템플릿 매칭은 간단하게 원본 이미지에 템플릿 이미지와 일치하는 영역을 찾는 알고리즘이다. import cv2 as cv # 템플릿 과정은 8비트 단일 체널! # grayscale ! src = cv.imread("test.png", cv.IMREAD_GRAYSCALE) templit = cv.imread("templit.png", cv.IM..

    [프로그래머스 C++] H-Index

    문제 : H-Index 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 분석 h값 ..

    [프로그래머스 C++] 조이스틱

    문제 : 조이스틱 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다. `첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다. 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다. 마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z를 완성합니다. 따라서 11번 이동시켜 "JAZ..

    [Python openCV] 유로 트럭2 반자율주행

    반자율 주행 영상처리가 재밌어 openCV를 공부한 뒤 뭘 만들까 고민하다 간단한 반자율 프로그램을 만들어봤다. 구동 방식은 간단하다. 허프 변환을 통해 관심 영역의 직선을 추출하고, 직선과 특정 좌표 간의 거리를 계산해 차가 제대로 가는지를 판단하는 방식이다. 핸들 조향은 키보드 모듈을 이용했다. 허프 변환 허프 변환(Hough Line Transform)은 이미지에서 직선을 찾기 위해 사용되는 알고리즘이다. 원리는 다음과 같다. 우선, 선형방정식을 직각 좌표계에서 극좌표계로 변환해준다. 변환한 식 r = xcosθ+ysinθ에 선형방정식의 한 점을 대입하고, θ를0~180까지 증가시키면서 r값을 구하게 되면 사인 곡선이 나온다. 같은 방식으로 선형 방정식의 다른 점들을 대입하게 되면 각각 곡선들이 나..

    [프로그래머스 C++] - 큰 수 만들기

    문제 : 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 분석 먼저 Brute force로 문제를 ..

    [프로그래머스 C++] - 더 맵게

    문제 : 더 맵게 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 ..

    [프로그래머스 C++] - 괄호 변환

    문제 : 괄호 변환 문제 설명 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발 역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 콘은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 **균형잡힌 괄호 문자열**이라고 부릅니다.그리고 여기에 '('와..