https://www.acmicpc.net/problem/15820알고리즘 분류구현result = ['Wrong Answer','Accepted','Why Wrong!!!']S1, S2 = map(int,input().split())state = 1lst1 = [list(map(int, input().split())) for _ in range(S1)]for i in lst1: if state == 0: break if i[0] == i[1]: state = 1 else: state = 0 lst2 = [list(map(int, input().split())) for _ in range(S2)]if not state == 0: for..
https://www.acmicpc.net/problem/13904문제웅찬이는 과제가 많다. 하루에 한 과제를 끝낼 수 있는데, 과제마다 마감일이 있으므로 모든 과제를 끝내지 못할 수도 있다. 과제마다 끝냈을 때 얻을 수 있는 점수가 있는데, 마감일이 지난 과제는 점수를 받을 수 없다. 웅찬이는 가장 점수를 많이 받을 수 있도록 과제를 수행하고 싶다. 웅찬이를 도와 얻을 수 있는 점수의 최댓값을 구하시오.입력/출력첫 줄에 정수 N (1 ≤ N ≤ 1,000)이 주어진다. 다음 줄부터 N개의 줄에는 각각 두 정수 d (1 ≤ d ≤ 1,000)와 w (1 ≤ w ≤ 100)가 주어진다. d는 과제 마감일까지 남은 일수를 의미하며, w는 과제의 점수를 의미한다. 얻을 수 있는 점수의 최댓값을 출력한다.코드f..
https://www.acmicpc.net/problem/1417문제다솜이는 사람의 마음을 읽을 수 있는 기계를 가지고 있다. 다솜이는 이 기계를 이용해서 2008년 4월 9일 국회의원 선거를 조작하려고 한다.다솜이의 기계는 각 사람들이 누구를 찍을 지 미리 읽을 수 있다. 어떤 사람이 누구를 찍을 지 정했으면, 반드시 선거때 그 사람을 찍는다.현재 형택구에 나온 국회의원 후보는 N명이다. 다솜이는 이 기계를 이용해서 그 마을의 주민 M명의 마음을 모두 읽었다.다솜이는 기호 1번이다. 다솜이는 사람들의 마음을 읽어서 자신을 찍지 않으려는 사람을 돈으로 매수해서 국회의원에 당선이 되게 하려고 한다. 다른 모든 사람의 득표수 보다 많은 득표수를 가질 때, 그 사람이 국회의원에 당선된다.예를 들어서, 마음을 ..
https://www.acmicpc.net/problem/2164문제N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다.예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다.N이 ..
https://www.acmicpc.net/problem/1100풀이1. 8줄에 걸쳐 문자열을 리스트로 받는다2. 행의 짝/홀에 따라 선별할 칸을 설정한다3. 해당하는 칸의 문자가 'F' 이면 cnt를 증가시킨다코드
문제 & 링크https://www.acmicpc.net/problem/9252 풀이1. dp 테이블을 0으로 초기화한다.2. 두 문자열을 dp 테이블의 1부터 시작하도록 반복문을 설정한다.3. 각 문자열의 원소가 같을 경우 dp[i][j]라면 dp[i-1][j-1]에서 1을 더해서 저장한다. 대각선의 값에서 1을 더하는 이유는 각 문자열에서 i번째 j번째 문자가 빠졌을 때 i-1번째, j-1번째 까지의 공통 부분 수열이 1 줄어야 하기 때문이다.4. 각 문자열의 원소가 다를 경우 dp[i][j]라면 dp[i-1][j]와 dp[i][j-1] 중 큰 값을 저장한다. 5. 3 - 4의 과정을 반복하며 dp 테이블의 마지막 원소에서 LCS의 길이를 구할 수 있다.6. dp 테이블의 마지막 원소(LCS의 길이)로..
문제 & 링크https://www.acmicpc.net/problem/1107 풀이1. 리모컨은 0 - 9까지 10개의 버튼을 가지고 있기에 길이가 10인 bool 자료형의 배열을 만들고, 입력받은 버튼을 true로 설정한다.2. 현재 채널이 100이기에 +, - 버튼만으로 원하는 채널에 도달할 때 누르는 횟수를 저장한다. 이때 음수값을 가질 수도 있으니 abs() 함수를 이용하여 양수로 저장한다.3. 이동하고자 하는 채널이 최대 500,000번 이기에 1,000,000번 채널에서 - 버튼을 누르는 경우도 생각하여 반복문을 수행한다.4. 해당 채널의 번호가 부서진 버튼을 포함하고 있는지 check 함수를 통해 확인한다. 이때 채널 번호를 string 형태로 바꾸고 한 글자 단위로 확인한다.5. 만약 채널..
https://www.acmicpc.net/problem/11728 문제풀이두 배열의 크기를 각각 A, B로 정의하고 정수값을 입력받습니다.A만큼 item으로 들어갈 정수를 a, B만큼 item으로 들어갈 정수를 b로 입력받습니다. a와 b를 더한 값을 combined라는 변수에 저장합니다.combined에 저장한 값을 정렬합니다.그 후 정렬된 값을 공백을 낀 채로 출력합니다.문제풀이A, B = map(int, input().split())a=list(map(int, input().split()))b=list(map(int, input().split()))combined=a+bsorted_arr=sorted(combined)print(' '.join(map(str, sorted_arr)))감사합니다.
https://acmicpc.net/problem/5533문제 풀이n = int(input())arr = [list(map(int,input().split())) for _ in range(n)]ans = [0]*nfor i in range(3): d = {} for j in range(n): score = arr[j][i] if score in d: d[score] += 1 else: d[score] = 1 for k in range(n): score = arr[k][i] if d[score] == 1: ans[k] += scoreprint('\n'.join(map(..
https://www.acmicpc.net/problem/10798문제 풀이1. 2차원 배열 형식으로 입력받기2. 각 줄의 최대 길이를 비교 (해당 문자열의 길이가 최대 길이보다 작다면 넘어갈 수 있도록)3. 출력할 순서로 정리할 리스트 생성4-1. 문자열의 길이가 최대길이보다 짧으면서 확인하는 위치가 비어있는 곳이라면 건너뛰기4-2. 위에서 해당사항이 없다면 출력 리스트에 추가5. 출력 리스트 출력문제 코드arr = []for i in range(5): arr.append(list(input()))max_length = 0for i in range(5): if len(arr[i]) > max_length: max_length = len(arr[i]) toPrint =..
10773번: 제로 (acmicpc.net)a= int(input())x=[]s=0for i in range(a): t=int(input()) if t!=0: x.append(t) else: x.pop()for i in range(len(x)): s+=x[i]print(s)가장 간단한 스택 문제이다. 입력받은 t가 0이 아니라면 스택에 쌓아주고 0이면 가장 최근 걸 pop() 해준다.
문제https://www.acmicpc.net/problem/1012코드#include #include #include using namespace std;int arr[51][51];bool visited[51][51];int m, n, k;void dfs(int a, int b) { // 방향 벡터 정의 (상하좌우) int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; visited[a][b] = true; for (int i = 0; i = 0 && nx = 0 && ny > t; while (t--) { memset(arr, 0, sizeof(arr)); memset(visited..