문제 https://www.acmicpc.net/problem/7795문제심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 수 있는 쌍의 개수는 7가지가 있다. 8-3, 8-6, 8-1, 7-3, 7-6, 7-1, 3-1.두 생명체 A와 B의 크기가 주어졌을 때, A의 크기가 B보다 큰 쌍이 몇 개나 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 A의 수 N과 B의 수 M이 주어진다. 둘째 줄에는 A의 크기가 모두 주어지며, 셋째 줄에는 B의 크기가 모..
N = int(input())arr = []for i in range(N): arr.append(list(map(int, input().split())))arr.sort(key = lambda x: [-x[0], x[1]])cnt = 0for i in range(N): if arr[4][0] == arr[i][0] and arr[4][1] https://www.acmicpc.net/problem/15905
https://www.acmicpc.net/problem/1813문제 해석 및 접근"정확하게 0개의 말은 참이다""정확하게 1개의 말은 참이다""정확하게 2개의 말은 참이다"이런 3개의 문장이 칠판 위에 쓰여져 있고, 이 문장들 중 몇 개의 문장이 참인지 가려내야 한다.천천히 접근해서, '(칠판에 쓰여진) 0개의 말이 참이다' 라는 문장이 True라면, 이 문장을 포함한 칠판에 있는 모든 문장은 거짓이어야 한다. 여기에서 모순이 발생한다. 자신이 True인 것에서 참인 문장이 1개가 고정되는데, 문장 자신이 말하는 말은 거짓이 된다.즉 '0개의 말이 참이다' 라는 문장은 거짓말쟁이 문장이고, 모순이다. 즉, '0개의 말이 참이다' 라는 문장은 0개 존재해야 한다. 반면 '정확하게 2개의 말이 참이다'..
https://www.acmicpc.net/problem/2153 풀이방법: 알파벳 점수 매기기:소문자 'a'부터 'z'까지는 각각 1부터 26까지의 점수를 부여대문자 'A'부터 'Z'까지는 27부터 52까지의 점수를 부여.단어의 점수 합 구하기:주어진 단어의 각 문자에 대해 점수를 구하고, 그 점수의 합을 계산소수 판단:소수는 1과 자기 자신 외에는 나누어떨어지지 않는 수주어진 점수가 소수인지 확인. (여기서는 1도 소수로 간주한다)출력:만약 점수가 소수라면 "It is a prime word."를 출력하고, 그렇지 않다면 "It is not a prime word."를 출력
문제 https://www.acmicpc.net/problem/2495문제여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을 작성하라. 예를 들어 세 개의 숫자 12345123, 17772345, 22233331이 주어졌다고 하자. 12345123은 연속하여 같은 숫자가 나오는 것이 없으므로 1을 출력하고, 17772345는 7이 세 개 연속하여 나오므로 3을 출력하며, 22233331의 경우에는 2가 세 개, 3이 네 개 연속해서 나오므로 그 중 큰 값인 4를 출력하여야 한다. 입력첫째 줄부터 셋째 줄까지 각 줄에 하나씩 세 개의 여덟 자리 양의 정수가 주어진다...
문제 https://www.acmicpc.net/problem/18111문제팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 땅을 파거나 집을 지을 수 있는 게임이다.목재를 충분히 모은 lvalue는 집을 짓기로 하였다. 하지만 고르지 않은 땅에는 집을 지을 수 없기 때문에 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업을 해야 한다.lvalue는 세로 N, 가로 M 크기의 집터를 골랐다. 집터 맨 왼쪽 위의 좌표는 (0, 0)이다. 우리의 목적은 이 집터 내의 땅의 높이를 일정하게 바꾸는 것이다. 우리는 다음과 같은 두 종류의 작업을 할 수 있다.좌표 (i,..
https://www.acmicpc.net/problem/8958알고리즘연속된 기호, 숫자를 세는 조건은 무엇일까? 또한 지금까지 연속된 기호, 수가 몇개인지 세기 위해선 어떻게 해야 할까?많은 방법이 있겠지만 이 문제에서는 이번 기호가 'O'라면, 분기를 나누어 '이전 기호'가 'X' 라면 연속된 횟수 1로 바꾸거나,그게 아니라면 계속해서 연속 횟수 c를 하나 증가시키는 방법을 사용했다. 그 이외의 경우라면, 현재 기호가 'X'이므로 c를 0으로 초기화했다. 점수를 계산하기 위해선 '현재까지의 O 수'를 세어야 하는데 이 역할을 cnt로 대신했다. 또한 이전 원소를 체크하기 때문에 index가 0번째인 원소는 c를 1로 고정하도록 예외 처리 해 주었다.코드input = __import__('sys')...
4435번: 중간계 전쟁알고리즘:DFS(깊이 우선 탐색)를 활용하여 백트래킹으로 문제를 해결한다. 이를 통해 각 전투의 결과를 저장하고 출력하도록 구현하였다.코드:G_S = [1, 2, 3, 3, 4, 10] S_S = [1, 2, 2, 2, 3, 5, 10] def cbr(g_c, s_c): g_t = sum(g_c[i] * G_S[i] for i in range(len(G_S))) s_t = sum(s_c[i] * S_S[i] for i in range(len(S_S))) # 결과 비교 if g_t > s_t: return "Good triumphs over Evil" elif g_t
문제 https://www.acmicpc.net/problem/9996 Algorithm입력받은 패턴의 *를 제외한 문자들의 길이가 입력받은 문자열 보다 길다면 일치하지 않다. 이를 제외한 경우 패턴과 입력받은 문자열의 시작 인덱스인 0과 패턴의 배열 마지막인덱스 패턴문자열 길이 -1, 입력받은 문자열의 마지막 인덱스인 문자열 길이 -1로 하여 앞쪽부터 하나씩 *를 만나기 전까지 계속해서 입력받은 문자열과 패턴을 상호비교 만약 비교도중 하나라도 다르다면 반복문을 탈출과 일치하지 않음을 반환 만약 앞쪽이 별표전 까지 모두 일치하다면 뒤쪽부터 한칸씩 상호 비교한 이후 뒤쪽도 불일치가 나온다면 반복문 탈출 모두 동일하다면 찾았음을 반환 이후 해당하는 문자열을 출력 Code#include#includeu..
https://www.acmicpc.net/problem/2839문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)출력상근이..