본문 바로가기

PS/BOJ

(16)
2021 ICPC Sinchon Summer Algorithm Camp Contest - 초급 대회 있는지도 모르고 참여 안했었는데, Diboongi팀 연습용으로 그날 저녁에 진행했었다. 구현 연습용이었으므로, 1시간 30분 시간제한을 두고 바로 시작했다. 4(D)번은 솔루션 생각해서 코드 짜놓고 틀려서 왠가 싶었는데 끝난 직후에 이진탐색을 이상하게 했던게 문제였다. 바로 AC 6(F), 7(G)번은 사실 천천히 봤으면 확실히 풀만한 문제였긴한데, 시간이 부족했다 ㅠ A. 이진수 나눗셈 1) 오른쪽에서 연속된 0의 개수가 m보다 크다면 나누어떨어지고, 아니면 나누어떨어지지 않는다고 생각했다. #include using namespace std; int n, m, i; char s[1100000]; int main(){ scanf("%d\n%s\n%d",&n,s,&m); for(i=n-1; i>=0..
[백준] 이모지 문제 : https://www.acmicpc.net/problem/17120 문제요약 : 슬랙 이모지가 적용되있는 문장이면 YES 아니면 NO 출력 해설 : https://www.webfx.com/tools/emoji-cheat-sheet/ 나 https://slackmojis.com 이런 곳에서 Ctr+A, Ctr+C해서 복사한 후 input.txt파일에 넣고 아래 프로그램을 돌리고 output.txt에 이모지 목록을 받는다 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 #include using namespace std; int main(){ freopen("input.txt","r",stdin); freopen("outpu..
[백준] GCD 곱 문제 : https://www.acmicpc.net/problem/14860 문제요약 : GCD(1, 1) × GCD(1, 2) × ... × GCD(1, M) × GCD(2, 1) × GCD(2, 2) × ... × GCD(2, M) × ... × GCD(N, 1) × GCD(N, 2) × ... × GCD(N, M)을 구해라 조건 : 1. 1 ≤ N, M ≤ 15,000,000 해설 : i) Naive Solution 각각의 i(1 ≤ i ≤ N), j(1 ≤ j ≤ M)에 대해 GCD(i, j)를 구해 곱하면서 O(NM)으로 구할 수 있겠죠? -> 15000000^2이므로 너무 느립니다 ii) 조금더 빠르게 N=8, M=8이라 합시다. GCD(i,j)들 중에 2의 인수가 얼마 있는지 알아봅시다. 1..
[백준] 7대 난제 클리어 https://www.acmicpc.net/workbook/view/1376 문제집: 백준 7대 난제 (CookieHCl) www.acmicpc.net 1237번 정ㅋ벅ㅋ 문제의 정답을 출력하시면 됩니다. 2555번 생일 출력하기 백준님 생일 출력하시면 됩니다. 구글링 열심히 하세요 2556번 별 찍기 - 14 네모 꽉 채워서 찍으세요^^ 9999번 구구 힌트 검색해보면 1915년생 1950년 앨범 수록곡 12바이트 끝글자 e 가수 이니셜 EP인걸 잘 이용하면 됩니다. 저는 앨범 따로 검색 안하고 1950년 출시된 노래 전부 넣어봤어요 11506번 占쏙옙 � 12096번 (이름없음) html 소스를 확인해보세요 15891번 스타트링크 사무실을 파헤쳐보자 상식적인 상수가 정답이므로 추측해보세요. 참고로 채..
[백준] 플립과 시프트 문제 : https://www.acmicpc.net/problem/7347 문제요약 : 회전하는 판에 검은색 흰색 돌이 있는데 한 돌을 기점으로 좌우 돌을 스왑할 수 있다. 검은돌과 흰돌이 섞여있지 않게 놓을 수 있는가? ※흰 원판 검은 원판이긴 한데 그냥 넘어갑시다.! 조건 : 1. 테스트 케이스 수 T 제한 x 2. 흰돌 개수 m, 검은돌 개수 n에 대해 10≤m+n≤30 3. 흰 돌은 0, 검은 돌은 1로 주워진다. 해설 : 전체 개수 N이라 할 때 (N=m+n) 검은 돌에 대해서만 생각해보자(검은 돌이 한쪽에 몰려있으면 다른쪽에 흰돌이 몰려있다) i)N이 짝수인 경우 검은 돌의 위치를 2로 나눈 나머지가 홀수인 경우 a, 짝수인 경우 b라 할 때 abs(a-b)≤1이면 검은 돌을 한 쪽에 몰아넣을..
[백준] Xor Sum 보호되어 있는 글입니다.
[백준] 2561번 세 번 뒤집기 문제 : https://www.acmicpc.net/problem/2561 문제요약 : 수열의 구간 (xi,yi)를 순차적으로 뒤집어 원래 수열로 만들 때, xi,yi(i=1~3) 를 출력하라 조건 : 1. 정수 N (5≤N≤1000) 2. 구간[i,i]를 뒤집으면 아무런 변화가 없는데 이러한 것도 허용이 된다. 해설 : 주어진 수열의 부분수열을 뒤집는 행위를 세 번 반복하여 1, 2, ... ,N이 되는 수열로 만드는 문제다. 조건 2를 보면 굳이 세 번 뒤집을 필요가 없음을 알 수 있다. 즉, 두 번 뒤집고 1,1을 뒤집거다 한 번 뒤집고 1,1을 두번 뒤집으면 되는 것이다. 우선 처음 수열이 1씩 증가하는 수열이기때문에 이 수열을 세 번 뒤집으면 1씩 증가하거나 1씩 감소하는 부분이 k개 생긴다. ..
[백준] 1604번 정사각형 자르기 문제 : https://www.acmicpc.net/problem/1604 문제요약 : N개의 선분들이 (-10,-10)(-10,10)(10,10)(10,-10)으로 이루어진 정사각형을 몇개의 영역으로 나누는가? 조건 : 1. (-1000≤x1,y1,x2,y2≤1000) 2. 선분의 양 끝점은 정사각형 밖에 있다. 3. 두 선분은 같은 직선 상에 있지 않다. 4. 세 개 이상의 직선은 한 점에서 교차하지 않는다. 해설 : 사실 생각해보면 꽤 간단한 문제임을 알 수 있습니다. 선분이 아닌 직선으로 보았을 때 직선간의 교점의 수가 하나 늘 때마다 평면의 영역은 하나씩 늘게 됩니다. 마찬가지로 위 문제는 정사각형 영역만을 보았을 때 그 위를 지나가는 직선들간의 교점의 개수를 확인하면 됩니다. 교점의 개수 : ..