1. 문제 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 접근 연속합은 동적계획법이나 분할정복 등의 여러 알고리즘으로 구할 수 있는데, 그 중 시간복잡도가 가장 낮은 동적계획법으로 구현했다. * 동적계획법이 아닌 다른 알고리즘은 아래에 참고하면 된다. https://2nnsv.tistory.com/40 [알고리즘] 연속 부분 수열의 합 연속 부분 수열의 합? : 비어 있지 않는 숫자 배열에서 합이 최대가 되는 연속된 부분수열 구간의 합 아래와 같은..
PS/BOJ
1. 문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 2. 접근 n과 m을 입력 받고 입력받은 값들을 비교 같은 값이 있다면 cnt++ 주의할 것은 a와 c를 모두 strip()으로 공백을 없애거나 모두 strip()함수를 쓰지 않아야함. 왜냐하면 같은 문자라도 a는 공백이 있고, c이 없으면 일치하지 않기 때문 3. 문제풀이 import sys n, m=map(int, sys.stdin.readline()..
1. 문제 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 2. 접근 https://2nnsv.tistory.com/31 [Python] 파이썬 입력 함수 1. input() : 문자열 입력 - input은 문자열을 입력받기 때문에 입력값을 list로 저장할 수 있다. - 정수/실수형일 때는 각각 int, float를 붙여주면 된다. inpu.. 2nnsv.tistory.com 3. 문제풀이 import sys n..
1. 문제 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 2. 접근 하노이 탑은 기둥 1에서 기둥 3까지 원반을 크기 순으로 옮기는 것이다. 게임의 조건은 다음과 같다. 한 번에 한개의 원판만 옮길 수 있다. 가장 위에 있는 원판만 이동할 수 있다. 큰 원판이 작은 원판 위에 있어서는 안 된다. 먼저, n = 1인 경우 : 무조건 가능 n < k 인 경우 : 가능하다고 가정 n = k인 경우 : 가장 큰 것을 제외하고 k-1개를 ..
1. 문제 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 2. 접근 크기가 N인 패턴은 N*N 정사각형 모양이다. 크기가 3인 패턴은 가운데 공백이 있고 모든 칸에 *이 있다. *** * * *** 크기가 6일 때는 ********* * ** ** * ********* *** *** * * * * *** *** ********* * ** ** * ********* 위와 같은 모습이다. 가장 왼쪽 위부터 (0,0)이라..
1. 문제 https://www.acmicpc.net/problem/1550 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net 2. 접근 * 형식 지정자 %d : 10진 정수 %f : 실수, 소수점 6자리부터 출력(고정소수점) %5d : %와 d 사이의 숫자만큼 띄어줌 %e : 부동형(실수형)으로 출력, 실수의 소수점 아래 값을 00으로 표시 %x : 16진수 값으로 출력 %o : 8진수 값으로 출력 %s : 문자열로 출력 %c : 1개의 문자로 출력 %g : 실수형을 간소화 %n : 지금까지 출력한 문자의 개수 저장 %p..
1. 문제 https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 2. 접근 https://2nnsv.tistory.com/11?category=1281866 3. 문제풀이 #include #define max 1001 int main() { int N, K, a[max], cnt=0; scanf_s("%d %d", &N, &K); for (int i = 2; i
1. 문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 2. 접근 알파벳 입력에 따라 해당되는 num이 달라지고, 입력할 때마다 t가 증가한다 만약에 WA를 입력 받았다면, W에 해당되는 num은 9이고 t는 10이다. A에 해당되는 num은 2이고 t는 3이다. 따라서 결과는 13 int dial(int w) { int num, t; if (w == 'A' || w == 'B' || w == 'C') { num = 2; t = 3; } if (w == 'D' || w == 'E' || w == 'F') { num = 3; ..
1. 문제 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 2. 접근 단순하게 생각했을 때는, 입력받은 a와 b를 배열에 저장해 배열의 순서를 반대로 바꾸고 각 배열의 첫번째를 서로 비교, 같다면 각 배열의 두번째를 비교, 같다면 각 배열의 세번째를 비교하도록 생각했다. "a[0] > b[0]" -> true -> a 출력 -> false -> "a[0] b 출력 -> "a[0] == b[0]" -> "a[1] > b[1]" -> tru..
1. 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 2. 접근 ' ' 단위로 구분해 배열에 입력받는다. 문자열의 첫번째 혹은 마지막에 공백이 있는지 확인한다. 3. 문제풀이 #define _CRT_SECURE_NO_WARNINGS #include #include char a[1000005]; int main() { int ans = 0; scanf("%[^\n]s", a); // 공백이 나올 때까지 입력받음 if (a[0] != '..