목록C,C++/코딩테스트 (102)
오답노트
https://programmers.co.kr/learn/courses/30/lessons/12946?language=cpp 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대 programmers.co.kr - 문제 파악 하노이의 탑 최소 이동의 경로를 출력하라 - 나의 접근 https://youtu.be/aPYE0anPZqI 하노이의 탑 영상으로 접근했는데 안됐다. 그런데 구글링해서 있는 답이랑 똑같다.. 아마 return 조건때문에 그런거 같다.. 하노이의 탑 뭔가 뚜렷하게 이해는 못한거 같다. 나중에 다시 풀어보자..
https://programmers.co.kr/learn/courses/30/lessons/12953?language=cpp 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr -문제 파악 N개의 정수가 주어지고 이 정수들의 최소공배수를 구하여라 - 정답 유클리드 호제법으로 최대공약수를 구하고 최대공약수를 이용해서 최소공배수를 구하였다 (https://dhjkl123.tistory.com/34) 유클리드 호제법은 반드시 기억하도록 하자. #include "bits/std..
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr - 문제 파악 핸드폰 숫자 패드를 왼쪽 엄지와 오른쪽 엄지로 주어진 배열 numbers 요소의 순서대로 누르려고 한다. 1,4,7은 왼쪽, 3,6,9는 오른쪽, 2,5,8,0은 가장 가까이있는 손가락으로 누르되, 두 손가락의 거리가 같다면 주어지는 ha..
https://programmers.co.kr/learn/courses/30/lessons/76501?language=cpp 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr - 문제 파악 정수의 절대값이 들어있는 배열과 정수의 부호를 담은 bool 타입의 배열이 주어진다. true 면 양수 false면 음수일 때, 정수의 절대값이 들어있는 배열의 원래 수들의 합을 출력하라. - 정답 #include #include using namespace std; int solution(vector..
https://programmers.co.kr/learn/courses/30/lessons/70128?language=cpp 코딩테스트 연습 - 내적 길이가 같은 두 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 - 문제 파악 정수 배열 a, b가 주어진다. a와 b의 내적을 구하라 내적은 다음과 같다. a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] - 정답 #include #include using namespace std; int..
https://programmers.co.kr/learn/courses/30/lessons/12977?language=cpp 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr - 문제 파악 정수 n이 주어지고 1 부터 n 중에 소수의 개수를 출력하라 - 정답 #include #include #include "bits/stdc++.h" using namespace std; int arr[1000005]; int solution(int n) { int answer = 0; for(int i = ..
https://programmers.co.kr/learn/courses/30/lessons/42576?language=cpp 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr - 문제 파악 마라톤 경기에 참가한 선수와 완주한 선수의 이름을 각각 배열로 주어진다. 이 때 완주하지 못한 선수의 이름을 출력하라. (모든 경우에 1명만 완주하지 못했다) - 정답 처음엔 이중for로 풀었는데 시간이 너무 오래 걸려서 집합 관련 함수를 사용했다. 그런데 제대로 차집합을 출력해지 못해서 오름차순으로 정렬..
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 - 문제파악 정수 배열A를 주어지고 커맨드를 위한 크기가 3인 배열을 가진 이중배열B가 주어진다. 이중배열 B의 요소배열에는 i,j,k가 포함되어 있고 각각 시작인덱스, 끝인덱스, 인덱스로 정의할 수 있다. 배열A에서 i번째 부터 j번째까지 자른 배열에서 k 번째의 수를 출력하라. - 정답 #include "bits/stdc++.h" using namespace std; vector solution(vector array, ve..
https://programmers.co.kr/learn/courses/30/lessons/42840?language=cpp 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr - 문제 파악 수포자 1,2,3 은 수학문제를 각자의 패턴으로 찍으려고한다. 이 때 정수 배열로 문제들의 정답을 알려줄 때, 이 중에서 가장 점수가 높게 나오는 사람을 출력하라. 만약 동점자가 있을 경우, 오름차순으로 출력하라. - 정답 완전탐색이라고 하지만 굳이 그렇게 풀지 않아도 되더라.. #include "bits/stdc++.h" ..
https://programmers.co.kr/learn/courses/30/lessons/1845#qna 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr - 문제 파악 홍박사는 폰켓몬 N 마리를 주어지고, 우리는 그 중의 반만 가져갈 수 있다. 하지만 우리는 다양한 종류의 폰켓몬을 가져가고 싶다. 이 때 가장 많은 종류를 가져가는 경우에 종류의 수를 출력하라. - 정답 재귀함수로 열심히 풀어봤다. 시간초과 발생하는 몇개 케이스 때문에 코드가 조금 억지로 짜여진거 같다. #include "bits/stdc..