알고리즘 문제풀이/프로그래머스
-
[프로그래머스/Level 2] k진수에서 소수 개수 구하기알고리즘 문제풀이/프로그래머스 2022. 10. 10. 17:13
https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 입력받은 숫자 n을 k진수로 변환하는 것은 어렵지 않다. 그러나 주의해야 할 점이 두 가지 존재한다. 1. k진수로 변환된 수가 int의 범위를 벗어날 수 있다. 2. 단순히 2부터 k진수로 변환된 수 - 1 값을 하나씩 체크하며 소수 여부를 판단하면 TLE 발생할 수 있다. (아마 1번 TC에서 TLE이 발생할 것이다.) 1번은 long long 타입을 사용함으로써 해결할 수 있고,..
-
[프로그래머스/Level 1] 신고 결과 받기알고리즘 문제풀이/프로그래머스 2022. 10. 3. 18:54
https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 (다시 풀기, 작년 공채 때 풀었는데 왜 못풀지? ㅋ) 신고 내역을 담을 map과 신고 결과를 기록할 map을 각각 선언하여 문제를 해결할 수 있다. 다음과 같이 입력 값이 주어졌다고 가정해보자. ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"], k = 2 신고 내역(key=신고자, value=피신고자 집합) mu..
-
[프로그래머스/Level 3] 등산코스 정하기알고리즘 문제풀이/프로그래머스 2022. 9. 29. 23:39
https://school.programmers.co.kr/learn/courses/30/lessons/118669 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 (다시 풀기) 다익스트라 알고리즘이란 한 정점에서 다른 정점까지의 최단 거리를 구하는 알고리즘이다. 이를 해당 문제에 적용해본다면 다음과 같이 된다. "한 출입구에서 다른 지점까지의 최소 intensity를 구하기" 이때 주의해야할 점은 결국 다익스트라 알고리즘은 최악의 경우 모든 정점을 방문하게 되는데, TLE 발생할 수 있다. 주목해야할 것은 '각 지점은 양방향 통행이 가능한 등..
-
[프로그래머스/Level 2] 두 큐 합 같게 만들기알고리즘 문제풀이/프로그래머스 2022. 9. 24. 23:09
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출, 그리디 유형 sum1과 sum2를 구한 후 다음과 같이 그리디를 적용한다. sum1 > sum2인 경우, q1 pop후 q2로 insert sum1 < sum2인 경우, q2 pop 후 q1으로 insert 해당 방법이 왜 유요한지 검증해보자면, sum1과 sum2의 합이 같아야하므로 합이 큰 쪽에서 원소를 pop하여 작은 쪽으로 insert를 해줘야 최소 횟수로 두 합을 같게 만..
-
[프로그래머스/Level 1] 성격 유형 검사하기알고리즘 문제풀이/프로그래머스 2022. 9. 24. 17:18
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 #include #include #include #include #include using namespace std; string table[4] = {"RT", "CF", "JM", "AN"}; int score[8] = {0, 3, 2, 1, 0, 1, 2, 3}; map m; string solution(vector survey, vector choices) { string a..
-
[프로그래머스/위클리 챌린지] 9주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 10. 8. 18:03
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 9주차 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr BFS와 구현력을 요구하는 어렵지 않은 문제였다. 예전에 네이버에 이와 비슷한 문제가 나온적이 있어서 쉽게 풀었다. 간선을 하나씩 제거한 것을 기록하기 위해 2차원 배열을 이용했다. 그 후 BFS를 이용해 트리를 탐색하는데, 체크한 간선을 구성하고 있는 노드를 탐색하려고 하면 그대로 continue 해준다. 이런식으로 나눠진 트리의 노드 수를 각각 구하고, 이들의 차의 절댓값이..
-
[프로그래머스/SQL] 헤비 유저가 소유한 장소 (MySQL)알고리즘 문제풀이/프로그래머스 2021. 10. 7. 14:09
https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 해커랭크의 SQL 문제는 어렵던데,,, 이건 너무 쉬워서 당황했다. 다음 데브매칭에도 이렇게 쉽게 나오면 좋겠다. 일단 헤비 유저인 HOST_ID를 먼저 구해야하기 때문에 아래와 같이 코드를 작성했다. SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_I..
-
[프로그래머스/위클리 챌린지] 6주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 10. 6. 15:49
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 어렵지않은 구현 + 정렬 문제였다. 주의할 점은 복싱 시합 결과가 'N'일 때는 전체 경기 횟수로 포함되지 않는다는 점, 그리고 나누는 수가 0이될 때 따로 예외처리를 해줘야하는 점이다. #include #include #include using namespace std; struct Boxer { int num, ..