https://www.acmicpc.net/problem/5671 5671번: 호텔 방 번호 선영이는 집 호수에 반복되는 숫자가 있는 경우에는 그 집에 사는 사람에게 불운이 찾아온다고 믿는다. 따라서, 선영이는 838호나 1004호와 같이 한 숫자가 두 번 이상 들어있는 집에는 절대 살지 www.acmicpc.net 음.. 이 문제는 브루트포스, 동적 프로그래밍으로 풀 수 있는 문제이다. 나는 브루트포스로 문제를 해결하였지만, 동적 프로그래밍으로도 문제를 해결할 방법이 있어 소개하고자 글을 작성한다. 1. 브루트포스 알고리즘 N~M을 하나하나 검사하여 그 개수만큼 출력하는 것이다. 중복의 여부는 bool check[10] 배열을 이용하였다. N~M을 하나하나 접근하고, 하나의 숫자를 검사할 때, 그 수의..
https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 2가지 재미있는 방법이 있다. 1. 규칙 2. 동적 프로그래밍이다. 2번 방법을 사용하는데 어려움이 있을 수 있다. 하지만, 그 과정을 이해하면 신기하다. 문제를 보면 상근이와 창영이는 턴을 번갈아가면서 돌을 가져간다. 돌은 1개 또는 3개만 가져갈 수 있다. 여기에서 규칙을 찾아야 한다. 방법 1. 먼저 상근이가 1개 또는 3개를 가져가면 창영이는 다음으로 1개 또는 3개를 가져갈 수 있다. 반드시 상근이는 돌을 홀수개만 가져갈 수 있고 창영이는 짝수개만 가져갈 수 있다. 그렇기 때문에 주어진 N이 홀수이면 SK, ..
https://www.acmicpc.net/problem/14490 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 정확하게 이해는 했지만, 추가적으로 알 수 있는게 많은 문제. 문제 접근. 1. 최대공약수 구하기. 2. 최대공약수로 나눈 값을 출력 최대공약수를 얼마나 빠르게, 쉽게 찾느냐가 관건. 이거는 저번에 최소공약수 문제를 해결하면서 작성한 적이 있음. 상기 시키는 목적으로 풀어보자. https://jhcard.tistory.com/61 [S5] 13241. 최소공배수 https://www.acmicpc.net/problem/13241 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만..

https://www.acmicpc.net/problem/3049 3049번: 다각형의 대각선 세 대각선이 한 점에서 만나지 않는 볼록 N각형이 주어졌을 때, 대각선의 교차점의 개수를 세는 프로그램을 작성하시오. 아래 그림은 위의 조건을 만족하는 한 육각형의 교차점 그림이다. 모든 www.acmicpc.net 오.. ㅋㅋ.. 신기.! 먼저 내가 푼 방법! 이식을 코드화 한것이 다음 코드이다. #include int main(void){ int N; scanf("%d", &N); int sum = 0; for(int i = 1; i
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 나는 지금까지 소수를 찾는 방법은 그 수의 약수를 하나하나 살펴보고 나눠지는 수가 없는 경우를 소수인 경우로 찾았다. 하지만, 이 문제의 경우 주어지는 수가 많다. 비록 100개 이하로 주어져 있긴 하지만, 만약 100개 이하가 아닌 더 큰 수가 입력으로 들어온다면 나는 문제를 어렵게 해결할 것이다. 이 문제를 해결하고 알고리즘 분류를 확인하였다. 낯선 단어가 보였다. 에라토스테네스의 체. 문제를 해결하고 에라토스테네스의 체를 이용한 코드도 소개하도록 하겠다. 처음..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문자열을 가지고 하는 문제는 무언가 나를 짜증나게 한다.. 일단 해보자. 나는 char형을 받고 cstring 라이브러리에 있는 strstr함수를 이용하여 해결하였다. strstr함수는 char*형안에 특정 문자열이 있으면 해당 위치를 반환해준다. 그러니까 크로아티아 알파벳이 나온다면 그 숫자만큼 빼주면 된다. 이 과정에서 strstr의 용도를 자세하게 알 수..
https://www.acmicpc.net/problem/16208 16208번: 귀찮음 현우는 무슨 이유에선지 길이 a1, ..., an의, 총 n개의 쇠막대가 필요해졌다. 하지만 그가 가진 것은 길이 a1+...+an의 하나의 쇠막대뿐이었다. 현우는 이 막대를 직접 잘라서 원래 필요하던 n개의 쇠 www.acmicpc.net 문제를 읽는데 낚였다. 그래도 정답은 맞긴 했지만 찝찝해서 작성한다. 이게 비용이 최소가 되는 경우를 찾아야 하는 줄 알고 조금 이상하게 해결하였다. 하지만, 어떠한 순서로 이 문제를 풀어도 결과는 똑같다. 대충 a, b, c, d가 있는데 이것을 이용한 비용을 구한다고 하자. 그러면 a x (b + c + d) + b x (c + d) + c x d가 된다. 이 식만 봐도 순서..
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제는 어렵지 않지만, 방법이 너무 많이 있다. 그 방법을 소개하고, 어떤 방법이 더 효율적인지 소개하려 한다. 우선 문제를 보고 나는 set라이브러리를 생각했다. 왜냐하면 같은 단어가 여러 번 입력된 경우 한 번씩만 출력한다는 조건이 있기 때문이다. 하지만 set라이브러리로 하려면 정렬 조건을 변경시켜줘야 한다. 이 때 새롭게 알게 된 내용도 있다. 그리고, 다른 분들의 코드를 봤는데..
- Total
- Today
- Yesterday
- readString
- 트리보나치
- bits/stdc++.h
- 에라토스테네스의 체
- 큰 수 계산
- 비트마스킹
- ios::sync_with_stdio(false)
- deque와 vector의 차이
- unistd.h
- writeString
- 좌표 압축 알고리즘
- Witcher3
- tsp알고리즘
- cin.tie(nullptr);
- 해시맵
- 분할정복
- 피보나치
- scanf
- 행렬 멱법
- manber myers
- 플로이드-워셜
- readInt
- fread
- writeInt
- list
- portal1
- fastIo
- Set
- SCC 알고리즘
- 확장 유클리드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |