목록C,C++ (125)
오답노트
https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net - 문제 파악 범위가 -2^62 ~ 2^62 인 정수가 N개 주어질 때, 개수가 가장 많은 정수를 출력하라, 개수가 같다면 그 중 제일 작은 정수를 출력하라 - 정답 무작위로 들어오는 수를 정렬을 통해서 개수를 세기 쉽게한다. 그 후 개수를 세어나가면 된다. 아래 항목들은 코드를 구현하면서 놓쳤던 부분이다. 여유롭게 선언한 배열 이용하기 : N의 제한 사항은 1부터 10만이다. 그래서 나는 ..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net - 문제 파악 가입한 회원 순서대로 나이와 이름이 입력된다. 이때 나이에 대해 오름차순으로 출력하라. 단, 나이가 같을 경우 가입한 순서대로 출력한다. - 정답 #include "bits/stdc++.h" using namespace std; pair arr[100001]; pair tmp[100001]; void merge(int s, int e) { int m = (s+e)/2; int idx_a ..
https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net - 문제 파악 수 정렬하기 4와 같으나 수에 중복이 있다. - 정답 #include "bits/stdc++.h" using namespace std; int arr[2000002]; int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); int n,num; cin>> n; int nmin = 1000000, ..
https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net - 문제 파악 N개의 정수를 내림차순으로 정렬하여 출력하라 (정수는 음수 또는 양수이며 절대값은 1,000,000보다 작거나 같다) - 정답 수 정렬하기 3 과 같은 풀이 #include "bits/stdc++.h" using namespace std; int arr[2000002]; int main() { cin.tie(0); ios::sync_with_stdio(0); int ..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net - 문제 파악 최대 10000000개의 정수(정수의 범위는 1부터 10000)가 입력 이를 오름차순으로 정렬하여 출력하라 - 나의 접근 Merge Sort 또는 STL sort 함수 둘 중 하나라도 사용할려면 10000000개의 배열이 필요한데 이러면 메모리 초과다. 그리고 시간 복잡도도 엄청나게 올라갈 것.. - 정답 정답은 의외로 간단하다.. 정수의 범위는 1부터 10000이므로 10000개 배열을 만들고 정수가..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net - 문제파악 [https://www.acmicpc.net/problem/2750] 와 같은 문제지만 N의 최대 개수가 시간 초과하기 딱 좋다. - 정답 1. STL sort함수 활용 #include "bits/stdc++.h" using namespace std; int arr[1000001]; int main() { ios::sync_with_stdio(false); cin.tie(0..
https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net - 문제 파악 첫번째 줄에는 입력개수 N, 두번째줄부터 N개 만큼의 정수가 입력된다. 이 때 입력된 정수를 오름차순으로 정렬하여 출력하라 - 정답 #include "bits/stdc++.h" using namespace std; int arr[1001]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i = 0 ; ..
https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr - 문제 파악 문자열에 공백으로 구분된 숫자들이 존재한다. 이 중 최소값과 최댓값을 출력하라 - 정답 숫자들에 범위가 정해져있지 않다. 문제를 대충 만든거 같은 느낌 #include "bits/stdc++.h" using namespace std; string solution(string s) { string answer = ""; v..
https://programmers.co.kr/learn/courses/30/lessons/42586# 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr - 문제 파악 현재 각 기능별로 진행도를 나타내는 배열과 각 기능별 하루마다 진행할 수 있는 진행도 배열이 주어진다. 배포는 배열의 순서대로 되어야하며 앞에 요소가 개발되지 않았다면 (진행도가 100이 아니면) 뒤에 요소들은 배포할 수 없다. 같은 날에 진행도가 100된 기능이 여러 개라면 해당 기능들은 모두 배포할 수 있다. 이 때 배포될 때 마다 몇..
https://programmers.co.kr/learn/courses/30/lessons/42860?language=cpp# 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr - 문제 파악 조이스틱으로 알파벳 이름을 만들려고한다. 맨 처음에는 A로만 이루어져 있고 조이스틱의 규칙은 다음과 같다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 (마..