목록전체 글 (145)
Partially Committed
https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 약수의 개수를 리턴하는 get_num_of_divisor 을 정의한 뒤, left 부터 right 까지의 수를 순회하며 get_num_of_divisor 의 홀짝 여부에 따라서 answer 에 더하거나 빼면 된다. [C++] #include #include using namespace std; int get_n..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr hash table 에 을 insert 한 뒤, 실패율에 따라서 정렬하여 answer 에 적절한 값을 push 한다. challenge 배열에는 각각의 스테이지에 대하여 도전을 했다면(거쳐왔다면) 하나씩 증가한다. 예를 들어, stage 배열이 [2, 1, 2, 6, 2, 4, 3, 3] 인 경우에는 challenge[1] = 8 (스테..
https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 중복된 원소가 존재할 수 있는 nums 배열 에서 nums.size()/2 개의 원소를 택할 때 최대한 다른 원소를 택할 수 있도록 해야한다. 이를 위해서 중복을 허용하지 않는 자료구조인 set 을 이용한다. set 에 nums 의 원소를 모두 insert 한 뒤, set 의 크기가 nums.size()/2 보다 작다면 set 의 크기가 답이고 set 의 크기..
https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이1. 처음에 문제를 보고 바로 떠오른 방법이다. 그래서 그런지 다소 논리가 깔끔하지는 못한 것 같다... 1. hash 맵에 현재 학생들의 체육복 개수 현황을 저장한다. 2. 체육복이 없는 학생은 앞뒷번호의 학생이 체육복 여분이 있다면 체육복을 하나 줄 수 있다. 예를 들어 i 번째 학생이 체육복이 없다면 i-1 번째, i+1 번째 학생이 여분이 있다면 i 번..
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr , , 와 같은 레코드를 가지는 해쉬 테이블을 만들어서 해결할 수 있다. 수포자1, 2, 3 이 문제를 찍는 방식은 각각 5, 8, 10 의 순환마디를 가지고 있으므로 이에 따라서 각각 맞은 점수를 증가시켜준다. 그리고 해쉬 테이블을 key 가 아닌 value 값을 기준으로..
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 참가자 배열은 완주자 배열보다 항상 길이가 1 만큼 더 길다는 점을 이용하면 된다. 먼저 두 배열을 정렬한 다음, 뒷 부분의 원소들을 비교한다. 만약에 서로 같으면 각각 pop_back() 을 호출한다. 동명이인이 없는 경우에는 완주자 배열은 텅텅 비고 참가자 배열에는 1개의 원소만 남는데, 그것이 답이다. 만약 동명이인이 발생하는 경우에는 ..
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr vector 의 assign 을 이용하여 temp vector 에 slice 한 다음 sorting 하여 요구하는 위치의 값을 answer 배열에 insert 한다. #include #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; int n = commands.size(); fo..
https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr [c++] nums 배열의 원소 3개로 만들 수 있는 합이 소수인 경우를 카운트하는 것이다. 이때 주의할 점은 합에 대한 중복 처리는 하지 않아도 된다. 왜냐면 소수 P 가 만약에 각각 다른 원소의 합으로 구성된다면, 숫자는 같지만 다른 경우이다. 더불어 각각의 원소는 중복되지 않는다는 전제가 있으므로 합에 대한 중복처리는 신경쓰지 않아도 된..