본문 바로가기

프로그래머스37

Programmers - 최소직사각형(C++) https://programmers.co.kr/learn/courses/30/lessons/86491?language=cpp 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 풀이 명함을 90도 회전하여 보관할 수도 있으므로 가로길이, 세로길이가 고정적이지 않음 가로길이->세로길이, 세로길이->가로길이로 변경하여 보관할 수 있음 - vector의 요소마다 {큰 값, 작은 값}의 형식으로 변경 - vector의 각 요소의 0번째, 1번째값의 최대값을 구함 -> 요건을 만족하는 지갑의 사이즈 #include #include.. 2021. 9. 29.
Programmers - 퍼즐 조각 채우기(C++) ≠https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차_퍼즐 조각 채우기 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 풀이 각 조각간의 비교만 하면 됨 1. 퍼즐과 빈 공간 나누기(BFS), 위치 정보 변환 ex 2. 각 조각 비교 2-1... 2021. 9. 24.
Programmers - 직업군 추천하기 https://programmers.co.kr/learn/courses/30/lessons/84325?language=python3 코딩테스트 연습 - 4주차_직업군 추천하기 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 풀이 직업군 마다 탐색/확인 테이블의 요소별로 split ->info info 탐색중에 languages에 있는 언어에 대해 점수 계산후 scores리스트에 담아줌 - info[0]의 직업군의 점수 += (6-info_index) x 선호도 scores중에 최대값과 같은 직업군들만 따로 사전순 정렬하여 0번째 직업군.. 2021. 9. 15.
Programmers - 상호평가 https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차_상호평가 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 풀이 (y, x)-> y가 x를 평가한 점수 한명에 대한 평가들을 누적합하면서 최소값, 최대값, 최소값 갯수, 최대값 갯수를 확인 자기자신을 평가한 점수가 유일한 최고점/최저점이라면 그 점수를 제외하고 평균을 계산 - (자기 자신 점수==min/max) && (max/min_cnt==1) #i.. 2021. 9. 14.
Programmers - 부족한 금액 계산하기 https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 풀이 필요한 전체 금액을 구하고 가지고 있는 money보다 크면 부족한 금액만큼, 같거나 작으면 0을 return using namespace std; long long solution(int price, int money, int count) { long long sum=0; for(int i=1;i 2021. 9. 14.
Programmers - 문자열 압축(Python) https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 1 ~ s의 길이//2 만큼 단위를 늘려가면서 탐색 단위 만큼 확인 하면서 같다면 cnt갱신 다르면 cnt를 포함한 단위 문자열을 추가 def solution(s): MIN=int(987654321) length=len(s) if(len(s)==1): return 1; for cut in range(1, length//2+1): # 문자열 단위 1 .. 2021. 9. 6.
Programmers - 자물쇠와 열쇠(C++) https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 자물쇠 크기 재할당 (2 x (열쇠크기-1) + 자물쇠크기) x (2 x (열쇠크기-1) + 자물쇠크기) 후 정중앙에 자물쇠 값 할당 더보기 재할당된 자물쇠에서 한칸씩이동, 90회전으로 모든 경우의 수를 탐색 - 열쇠의 사이즈만큼 자물쇠 배열에 + 연산 - 실제 자물쇠의 영역을 확인 -> 값이 1이 아니라면 return false - returen false로 빠져나가는 것이 없다면 return true .. 2021. 9. 5.
Programmers - 광고삽입(C++) https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 풀이 완전 탐색의 경우 O(N(전체 구간 길이) x M(광고의 길이)) 시간을 초단위로 1초씩 이동 -> 구간의 합을 계산 O(N)으로 계산 1. logs에 대해 초로 변환, 시작 - 끝 값에 대해 재생 사람수 카운트 2. 0~(동영상 길이-광고 길이)에 대해 한 칸씩 슬라이딩을 옮기며 최대.. 2021. 8. 24.
Programmers - 외벽점검(C++) https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 풀이 외벽을 점검하면서 0->n, n->0의 경우를 이어주기위해 weak를 이어붙임 ex) n=8, weak=[1, 4, 7] -> new_weak=[1, 4, 7, 8(1+n), 11(4+n), 14(7+n)] 문제 설명에 모든 경우에 대한 탐색(bruteforce) 1. 어떤 친구를 배정할 것인지 2. 취약지점 중 어느 곳을 시작지점를 배정할 것인지 3. 시.. 2021. 8. 20.