https://www.acmicpc.net/problem/2890 2890번: 카약 첫째 줄에 R과 C가 주어진다. 다음 R개 줄에는 '.', 'S', 'F', '1'~'9'로 이루어진 위성 지도가 주어진다. 한 줄에는 최대 한 개의 카약만 있고, 위성 사진에 있는 카약은 항상 9개이다. (10 ≤ R, C ≤ 50) www.acmicpc.net 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; int arr[10]; int ord[10]; int ans[10]; in..
분류 전체보기
문제 https://www.acmicpc.net/problem/1965 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net 코드 import sys def calc(box): n = len(box) dp = [1] * n for i in range(1, n): for j in range(i): if box[i] > box[j]: dp[i] = max(dp[i], dp[j] + 1) return max(dp) n=int(input()) box=list(map(int,sys.stdin.readline().rstrip().sp..
https://www.acmicpc.net/problem/10824 문제 네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오. 두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다. 입력 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) 출력 A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다. 예제 입출력 10 20 30 40 //입력 4060 //출력 소스코드 a, b, c, d = input().split() sum1= a+b sum2 = c+d print(int(sum1)+int(sum2)) 문제해결 1...
문제 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 풀이 #중간에 나오는 수가 모두 0 이상 20 이하이어야 한다 # 백준 5557 N = int(input()) List = list(map(int,input().split())) DP= [[0 for _ in range(21)] for _ in range(N+1)] for i in range(N): if i==0: DP[i][List[0]] = 1 else: for j in range..
ㅣ전깃줄 !https://d2gd6pc034wcta.cloudfront.net/tier/11.svg 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 37655 18072 14540 47.660% 문제 두 전봇대 A와 B 사이에 하나 둘씩 전깃줄을 추가하다 보니 전깃줄이 서로 교차하는 경우가 발생하였다. 합선의 위험이 있어 이들 중 몇 개의 전깃줄을 없애 전깃줄이 교차하지 않도록 만들려고 한다. 예를 들어, 과 같이 전깃줄이 연결되어 있는 경우 A의 1번 위치와 B의 8번 위치를 잇는 전깃줄, A의 3번 위치와 B의 9번 위치를 잇는 전깃줄, A의 4번 위치와 B의 1번 위치를 잇는 전깃줄을 없애면 남아있는 모든 전깃줄이 서로 교차하지 않게 된다. https://u..
https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른..
https://www.acmicpc.net/problem/2651 2651번: 자동차경주대회 첫째 줄에는 정비를 받지 않고 갈 수 있는 최대 거리가 주어진다. 둘째 줄에는 정비소의 개수가 입력되는데 정비소 수는 100개 이하이다. 셋째 줄에는 인접한 정비소 사이의 거리가 차례로 주어 www.acmicpc.net 문제 분석 난이도 골드 4 분류 구현, DP 들어가기 전에 DP이지만 입력이랑 예외처리가 상당히 까다로운 문제, 최소값만 구하는 것이라면 별로 어려운 문제가 아니지만 개수구하기 + 역추적 까지 해야하는 문제 문제 풀이 문제 해결을 조금 더 수월하게 하기 위해서 거리를 누적해서 저장해 주었다. 현재 지점과 선택한 지점의 누적된 값을 빼면 거리를 구할 수 있고 그 거리가 k보다 작다면 대소비교를 하고..
https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 코드 n, m = map(int, input().split()) arr = [] for i in range(n): arr.append(list(input())) check = min(n, m) answer = 0 for i in range(n): for j in range(m): for k in range(check): if ((i + k) < n) and ((j + k) < m) and (arr..
문제 https://www.acmicpc.net/problem/1058 Algorithm 직접 친구라면 2-친구이다.( 거리 = 1) 혹은 내가 어떠한 대상 A와 2-친구가 되려면, A와 직접 친구인 누군가와 직접 친구여야 한다. (거리 = 2) 위 두 조건 중 하나라도 만족하면 2-친구이다. 즉, 나와 대상의 거리가 2 이하라면 2-친구이다! 이제 BFS를 돌리면 된다. Code #include using namespace std; #define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0); typedef long long ll; typedef pair pii; typedef pair pll; int n; vector graph[51]; bool visi..
https://www.acmicpc.net/problem/12756 12756번: 고급 여관 플레이어 A의 카드가 남아있다면 "PLAYER A"를, 플레이어 B의 카드가 남아있다면 "PLAYER B"를 출력한다. 모두 죽은 상태라면 "DRAW"를 따옴표 없이 출력한다. www.acmicpc.net 문제 "럭키스톤"은 카드를 통해 대결하는 게임이다. 창식이는 럭키스톤을 자주 한다. 이 게임의 카드에는 공격력과 생명력이 표시되어있다. 왼쪽에는 공격력이, 오른쪽에는 생명력이 숫자로 적혀있다. 서로 꺼낸 카드를 비교하여 남길 카드를 결정하는 데, 카드의 비교는 다음과 같이 이루어진다. 비교하는 카드의 공격력만큼 동시에 서로 상대 카드의 생명력을 깎는다. 줄어든 생명력은 다시 회복되지 않는다. 생명력이 0 이하인..
문제 링크 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 접근 방법 추가해야하는 가로선이 3개 보다 많거나 불가능할 경우 모두 -1을 출력하라는 요구사항이 있기 때문에 3가지를 넘어가는 경우에 대해선 생각하지 않아도 되고, N과 H 또한 각각 최대 10, 30으로 크지 않아서 최악의 경우에 대해 ((N-1) * H) C 3 = 3,244,140 개의 조합만을 구하면 되기때문에 백트래킹을 이용하여 완전 탐색하는 방법을 생각했습니다. 개인적으로..
https://www.acmicpc.net/problem/11365 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net 문제 분석 분류 구현, 문자열 문제 설명 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다.이 암호를 해독하는 프로그램을 작성하시오. 입력 한 줄에 하나의 암호가 주어진다. 암호의 길이는 500을 넘지 않는다. 마지막 줄에는 "END"가 주어진다. (END는 해독하지 않는다.) 출력 각 암호가 해독된 것을 한 줄에 하나..