1. 문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 2. 접근 이 문제는 n개의 집을 R, G, B를 이용해 이웃과 겹치지 않게 칠하는데 드는 최소 비용을 구해야 한다. n번째까지 드는 비용을 구한 후 3개 중 최소 비용을 찾아내야 한다. 먼저 값을 입력받는 배열 input[1001][3]을 선언한 다음, input[i][0], input[i][1], input[i][2] 에서 i번째 집을 칠했을 때의 최소 비용을 ..
PS
1. 문제 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 2. 문제해석 소수인지 아닌지를 판단하는 함수를 만들어야 한다. int isPrime(int a) { if (a < 2) return -1; // 소수 아님 for (int i = 2; i*i
1. 문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 2. 접근 스택이란 ? 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 자료구조 - push : 스택에 넣는 것 - pop : 스택에서 빼는 것 - size : 스택의 크기를 구하는 것 - empty : 스택이 비었는지 확인 - top : 스택의 가장 윗 데이터 반환 stack이 정의되어 있을 때, stack.append() : 리스트의 맨 끝에 원소 추가 stack...
1. 문제 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 2. 접근 find() : 문자열에서 특정 문자가 몇 번째에 위치해 있는지에 대한 값을 반환한다. (문자열에서만 사용, 리스트나 튜플은 index() 사용) 찾는 문자가 없는 경우, -1 반환 chr() : 아스키 숫자를 문자로 반환한다. 3. 정답 s=input() arr=list(range(97,123)) for x in arr : print(s.find(chr(x)))..
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 [알고리즘] 연속 부분 수열의 합 연속 부분 수열의 합? : 비어 있지 않는 숫자 배열에서 합이 최대가 되는 연속된 부분수열 구간의 합 아래와 같은..
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..