목록C,C++/코딩테스트 (102)
오답노트
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로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 (마..
https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr - 문제파악 이중배열에서 상하좌우로 연결된 요소들은 같은 영역에 있다고 판단한다. 요소의 숫자가 다르면 상하좌우에 연결되어 있어도 다른 영역이라고 판단한다. 이 때, 영역의 개수와 영역들 중 가장 넓은 너비 값을 출력하라. - 정답 BFS로 문제를 해결했다. 계속 실패하길래 주석을 읽어보니 전역변수를 꼭 solution 함수 내에서 초기화 해야한다... #inclu..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr - 문제 파악 오픈 채팅방은 사용자가 들어오거나 나가면 화면에 메세지를 띄운다. 이 메세지에는 사용자의 닉네임이 출력된다. 오픈채팅방은 사용자들끼리 중복된 닉네임을 사용할 수 있다. 사용자가 닉네임을 바꿀 수 있는 조건은 한번 들어온 뒤 나갔다가 다른 닉네임으로 재접속할때, 또는 채팅방 내에서 닉네임을 바꾸는 경우 밖에 없다. 오픈채팅방에서 일어난 이벤트가 담긴..
https://programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr - 문제 파악 문자열을 m개로 묶을때 연속되는 같은 단어는 묶어서 표현할 수 있다. 이렇게 문자열을 압축할 때 가장 짧은 문자열의 길이를 출력하라. - 정답 조금 더럽게 풀긴했는데 아예 압축된 문자열을 만들어서 그 길이를 계속 비교했다. #include "bits/stdc++.h" using namespace std; int solution(string..