반응형 전체 글78 [BOJ/백준] 1021번 회전하는 큐 - c++ 풀이 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 문제 해설 주어진 3개의 연산을 활용하여 n개의 원소중 입력된 m개의 원소를 삭제하는 최소 연산 횟수를 구하는 문제이다. 첫 번째 연산 : 첫 번째 원소 삭제 두 번째 연산 : 첫 번째 원소를 맨 끝으로 이동 세 번째 연산 : 마지막 원소를 맨 앞으로 이동 주어진 원소가 front에 가까운 지, back에 가까운 지 찾아서 두 번째 또는 세 번째 연산을 활용하여 최소 연산 횟수를 구하면 된다... 2023. 4. 26. [BOJ/백준] 2164번 카드2 - c++ 풀이 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 해설 N을 입력받은 후 1 ~ N까지의 수를 큐에 삽입한다. 규칙은 다음과 같다. 1. 맨 위에 카드를 버린다 2. 맨 위에 카드를 맽 밑으로 옮긴다 다음 2개의 규칙을 순서대로 반복하면서 마지막에 남은 카드를 출력하면 된다. 1번을 코드로 옮기면 queue.pop();에 해당하고 2번을 코드로 옮기면 queue.push(queue.front()); queue.pop();에 해당한다 queu.. 2023. 4. 10. [BOJ/백준] 18258번 큐 2 - c++ 풀이 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 해설 pop, front, back, top 명렁 처리 시 비어있는 지 체크 해주는 것에 유의해야 한다. 아래 코드는 c++의 실행 속도와 입출력 속도를 향상 시켜준다. ios_base :: sync_with_stdio(false); cin.tie(NULL); ios_base :: sync_with_stdio(false); c의 stdio와 c++의 iostream의.. 2023. 4. 10. [BOJ/백준] 5597번 과제 안 내신 분..? - [c/c++] 풀이 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 문제 해설 1번부터 30번까지의 숫자가 있다 28줄에 걸쳐 숫자가 주어지는데 안 나온 숫자를 출력하면 되는 문제다 배열을 0으로 초기화하고 입력된 숫자를 인덱스로 접근하여 1로 대입한다. 마지막으로 1부터 30까지 반복문을 돌려 값이 0인 인덱스를 출력한다. 코드 c #include int main() { int arr[31] = { 0, }; int a; for(int i = 0; .. 2023. 4. 1. [BOJ/백준] 10813번 공 바꾸기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 문제 해설 1번 ~ n번까지의 바구니가 존재하며 각 바구니에는 해당하는 숫자가 들어가있다. m줄에 걸쳐 a, b를 입력 받은 후 a번 바구니와 b번 바구니에 들어있는 숫자를 바꾼 후 n개의 바구니를 출력하는 문제다 n번까지의 바구니에 각 바구니에 해당하는 숫자로 초기화를 해준 후 swap 메소드를 사용하여 바구니 안의 번호를 바꾼 후 출력을 해주었다 코드에서 정의한 swap 함수를 설명하자면 변수에.. 2023. 3. 31. [BOJ/백준] 10810번 공 넣기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 문제 해설 1번 ~n번까지의 바구니가 존재하며 m개의 줄에 걸쳐 i, j, k가 순서대로 들어온다. i번 ~ j번의 바구니에 k라는 숫자를 넣으며 바구니에 들어간 마지막 숫자를 출력한다. 단 숫자가 없으면 0을 출력한다. 1 ≤ N ≤ 100 이므로 배열의 인덱스는 101로, 값은 0으로 초기화 한다. (인덱스를 100으로 초기화시 0 ~ 99까지의 인덱스만 존재) m개의 줄에 걸쳐 i, j,.. 2023. 3. 28. [BOJ/백준] 10807번 개수 세기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 문제 해설 이러러러러러런 설명 코드 c #include int main() { int n; int arr[101]; int v; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &arr[i]); } scanf("%d", &v); int res = 0; for(int i = 0; i < n; i++) { if(arr[i] == v).. 2023. 3. 3. [BOJ/백준] 25314번 코딩은 체육과목 입니다 - [c/c++]풀이 https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 문제 해설 4바이트 -> long int 8바이트 -> long long int 12바이트 -> long long long int 즉 4 x n 바이트 -> long x (n) int (n > 0 자연수) 이므로 입력된 n을 4로 나눈 몫만큼 "long "을 출력 후 마지막에 "int"를 출력한다 코드 c #include int main() { int n; scanf("%d", &n.. 2023. 3. 2. 이전 1 2 3 4 5 6 ··· 10 다음 반응형