전체 글 226

백준 20192: 순서 섞기 [C언어]

https://www.acmicpc.net/problem/20192 20192번: 순서 섞기 정수가 저장된 크기 N인 배열 A가 있을 때, ‘순서 섞기’ 연산은 아래와 같이 정의된다. 크기가 N인 배열 B를 이용하여, 배열 A의 좌측 끝 또는 우측 끝에 있는 값 중 하나를 차례로 꺼내어 배열 B www.acmicpc.net #include #include int main() { int i, n, t, w, p, l, c; w = p = 1; l = c = 0; scanf("%d", &n); while(n--) { scanf("%d", &t); if ((w && (l > t) || (!w && (l

설명없음 2022.06.03

백준 3163: 떨어지는 개미 [C언어]

https://www.acmicpc.net/problem/3163 3163번: 떨어지는 개미 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 N, L, k가 주어진다. 다음 N개 줄에는 pi와 ai가 주어진다. ai는 개미의 ID이고, pi는 그 개미의 초기 위치이다. 항상 p www.acmicpc.net #include int T, N, L, K; int p[1000001]; int id[1000001]; int front, rear; int plus[1000001]; int pn, pp; int minus[1000001]; int mn, mp; void merge(int data[], int p, int q, int r) { int i = p, j = q+1, k = ..

백준 2505: 두 번 뒤집기 [C/C++]

https://www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5 ≤ N ≤ 10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net #include using namespace std; #define nn 10001 #define f first #define s second typedef vector vpii; int n, a[nn], b1[nn], b2[nn]; int m=0, l1=1, r1=1, l2=1, r2=1; vpii seg; void turn(int l, int r){ for( int i=l; i

백준 1158: 요세푸스 문제 [C언어]

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 코드 : #include #include #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node* next; }Node; typedef struct _CLL { Node* tail; Node* cur; Node* before; int numOfData; }CList; typedef CList List; void ListInit(List* plist) { plist->tail..

백준 11053: 가장 긴 증가하는 부분 수열, 파이썬

https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 코드 : import sys n = int(sys.stdin.readline()) a = list(map(int, sys.stdin.readline().split())) dp = [0 for i in range(len(a))] for i in range(len(a)): for j in range(i): if a[i] >..

설명없음 2022.06.03

게임이론 기초, c++

문제 : https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net N을 번갈아 가며 1을 빼거나 3을 뺄 때, 처음 시작하는 사람이 먼저 0에 도달 하나요? 코드 : if int(input())%2: print("SK") else: print("CY") cs 게임 이론은 규칙을 찾으면 매우 쉽게 풀리는 경향이 있습니다. 풀이 : N = 1이면, 할 수 있는 경우의 수가 1을 빼는 것 밖에 없습니다. 그러면 처음 시작하는 사람이 이기게 됩니다. N이 2이면, 1을 뺄 수 밖에 없습니다. 그리고 N이 1이 되어 1을 뺄 수 밖에 없으니 처음에 시작한 사람은 질 수 밖에 없습니다..

파이썬으로 피보나치 수열을 구하는 여러가지 방법

1. 일반항으로 구하기 오일러가 발견한 수식입니다. 이를 코드로 옮길 시 아래와 같이 됩니다. r=5**(0.5) print(round(((1+r)/2)**int(input())/r)) cs 증명은 위키피디아를 참조 바랍니다. https://en.wikipedia.org/wiki/Fibonacci_number Fibonacci number - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Integer in the infinite Fibonacci sequence A tiling with squares whose side lengths are successive Fibonacci numbers: 1, 1,..

백준 1037 약수, c++

https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 풀이: prime의 square number과 그 외를 구분해주면 되는 문제입니다. #include #include #include #define fastio() ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr); using namespace std; int main() { fastio(); int n; cin >> n; vector ..

백준 11659 구간 합 구하기4

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 1. 누적 합 알고리즘을 이용한다면 매우 쉬운 문제였습니다 #include #define fastio() ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr); using namespace std; int n, m, t1, t2; int arr[111111]; int acc[111111]; int main() { fasti..

백준 10814 나이순 정렬, 안정 정렬

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 안정 정렬(Stable sort)에 관한 문제입니다 파이썬안의 sort를 나이순으로 정렬만 하면 되는 문제입니다 import sys n = int(sys.stdin.readline()) lis = [] for i in range(n): lis.append(list(sys.stdin.readline().strip().split())) lis.sort(key= lambda lis : int(lis[0]))..