프로그래머스

    level2_방금그곡

    문제 https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 접근방법 1) 접근 사고 1.모든 정보들을 사용하기 쉽게 struct 구조를 사용하여 songinfo 라는 자료형을 사용해 전처리 작업을 진행한다. 2.주어진 곡 정보에 내가 사용해야 하는 음악 코드(m)이 존재하는지 확인한다. 3.만약 음악 코드를 포함하고 있으면 후보자 배열에 담아둔다. 2) 시간 복잡도 O(N^2) 3) 실수 진짜 너무 많..

    level1_두 개 뽑아서 더하기

    문제 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 접근방법 1) 접근 사고 인덱스가 안겹치게 모든 경우를 더 해준뒤 같은 값들의 중복을 unique를 사용해서 지워주었습니다. 2) 시간 복잡도 O(n^2) 3) 실수 없었습니다. 4) 배운점 5) PS 정답 코드 #include using namespace std; vector solution(vector n..

    level1_3진법 뒤집기

    문제 https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 접근방법 1) 접근 사고 처음에 넣은것을 뒤집어야 하므로 처음부터 뒤집은 상태를 넣어줄려고 큐를 사용해서 구현해 봤습니다. 2) 시간 복잡도 O(n) 3) 실수 없습니다. 4) 배운점 없는거 같네요 5) PS 정답 코드 #include using namespace std; int solution(int n) {..

    level1_내적

    문제 https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 접근방법 1) 접근 사고 그대로 구현하시면 됩니다 2) 시간 복잡도 O(n) 3) 실수 원큐에 했습니다. 4) 배운점 없는거 같습니다. 5) PS 정답 코드 #include using namespace std; int solution(vector a, vector b) { ..

    2019 KAKAO BLIND RECRUITMENT 풀이 모음

    1번 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 접근방법 단순 구현 문제였다. 해시를 활용해서 아이디를 이름에 매칭 시켜서 풀면 쉽게 해결이 된다. 실수 한 큐에 해결했습니다. O_O 정답 코드 #include using namespace std; map db; vector solution(vector record) { vector answer; vector log; for(auto s : record)..

    2020 KAKAO BLIND RECRUITMENT 풀이 모음

    1번 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 접근방법 1. 문자열을 탐색하면서 문자열에서 같은 문자가 나오는 지점의 숫자가 몇 번 나오는지 계산하면서 탐색을 진행합니다. 2. 같은 문자가 나오는 경우가 멈출 경우 숫자와 문자를 문자열에 더하고 정답에 값을 넣어줍니다. 3. 이때 사이즈가 1인 경우는 문제의 조건의 따라 예외처리를 진행해줍니다. 실수 1. 문자열 탐색을 진행한 뒤 다음 문자열을 ..

    level4_매출하락최소화(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72416 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr 접근방법 1) 접근 사고 DFS + DP 문제였습니다. 주석에 자세히 첨부하였습니다. 2) 시간 복잡도 3) 실수 4) PS 하... 정답 코드

    level3_카드짝맞추기(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 접근방법 1) 접근 사고 문제를 정리하면 카드를 뒤집는 모든 순서를 고려해서 카드와 카드 사이의 최단 거리를 구할 경우 전체 최단거리르 구해야 하는 문제였습니다. 백트래킹을 활용하여 카드의 모든 뒤집는 순서를 고려하고 다이젝스트라를 활용하여 최단거리를 구해주면 되는 문제입니다. 2) 시간 복잡도 3) 실수 63번, 64번줄에서 cur값을 더 해주는 실수를 함 ..

    level3_광고삽입(2021 KAKAO BLIND RECRUITMENT).cpp

    문제 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 접근방법 1) 접근 사고 문제를 다 읽고 정리하면 "광고의 누적시간을 구하세요"가 문제에서 제시하는 핵심이다. 처음에 어떻게 구현을 해야할 지 감이 안잡혔다. 완전탐색으로 구현을 하게 되면 범위 때문에 시간초과가 발생할 게 당연하였기 때문에 O(longN)이나 O(N)으로 해결하는 알고..

    level3_합승택시요금(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 접근방법 1) 접근 사고 백준의 "특정한 최단 경로"의 쉬운 버전이었습니다. ..

    level2_순위검색(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72412

    level2_메뉴리뉴얼(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 접근방법 1) 접근 사고 n의 범위를 확인하고 완전탐색 + 구현으로 구현하면 된다고 생각하여 문제를 구현했습니다. 그러나 테스트 케이스를 다 통과했지만 반례를 찾지 못하여 다시 재구현했습니다. 백트래킹을 활용해서 모든 조합을 구해주는 방법으로 접근하였습니다. 조합 중에 course에 들어있는 값으로 이루어진 조합의 사이즈 중 가장 큰 사이즈를 기억하는 배열 ..

    level1_신규 아이디추천(2021 KAKAO BLIND RECRUITMENT)

    문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 접근방법 1) 접근 사고 정말 단순한 구현 문제였습니다. 각 조건 순서별로 구현하면 되는 문제입니다. 디버깅 실수만 줄이면 쉽게 구현 가능합니다. 2) 시간 복잡도 O(n) 3) 실수 없었습니다. 4) PS 문자열 라이브러리를 좀 더 잘 다뤘다면 더 쉽게 풀 수 있었을꺼 같다. 정답코드

    퍼즐 조각 채우기

    문제 https://programmers.co.kr/learn/courses/30/lessons/84021?language=cpp 코딩테스트 연습 - 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) 접근 사고 game_board와 table의 위치들을 파싱해준뒤 각 도형의 위치들을 비교해주면서 일..