분류 전체보기

문제 소스코드 from collections import deque from itertools import combinations n,m=map(int,input().split()) map = [list(map(int,input().split())) for i in range(n)] arr = map[:] ans = 0 dx=[0,0,1,-1] dy=[1,-1,0,0] def virus(): q = deque() # 위에서부터 맵을 돌다가 2를 만나면 바이러스를 퍼뜨림 for i in range(n): for j in range(m): if arr[i][j] == 2: q.append((i,j)) while q: x,y=q.popleft() for i in range(4): nx = x+dx[i] ny=..
4435번: 중간계 전쟁 (acmicpc.net) 간달프 군대의 점수 합 ans_g, 사우론 군대의 점수 합 ans_s으로 변수 선언과 초기화, 두 군대의 종족들 마다 할당된 점수들에 대한 리스트 두 개를 선언 전투 횟수를 입력 변수로 따로 두지 않고 for 문에 넣었습니다 전투 횟수만큼 g, s라는 군대 종족들 인원수를 할당받는 리스트 선언 이중 for 문을 써서 리스트 길이만큼 반복하는 for 문을 써서 전체 총합 리스트 원소에 (각 종족의 점수 * 종족의 인원수)를 계산한 결과를 할당받도록 함 전체 총합을 비교하여비교값에 따라 Battle n(회차): 문제에서 주어진 대사를 출력하도록 하였는데 Battle이 고정이고 n이 회차마다 달라지므로 format을 사용하여 {}안에 회차값인 i + 1을 넣어..
문제 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 풀이 한줄 요약: 영수가 추측한 수와 strike, ball를 통해서 가능하지 않은 수들을 걸러냄!! 0~999 중에 제거 1. 한 숫자 안에 같은 숫자 있는 수 2. 어떠한 자리에라도 0이 들어가는 수 3. 영수가 추측한 수와 제시된 strike, ball수와 맞지 않는 수 123~999까지의 숫자와 영수가 예측한 숫자의 strike(자리수 같고 숫자 같고)수와 ball(자리수 다르고 숫자..
문제 요약 N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램 입력 첫째 줄에는 수의 개수가 주어지고, 둘째 줄에는 수가 주어지며, 셋째 줄에는 4개의 연산자의 각각 사용 가능한 개수가 주어진다 ex) 2 5 6 0 0 1 0 출력 첫째 줄에 최대값을, 둘째 줄에 최소값을 출력한다. ex) 30 30 문제 코드 코드 설명 5번 줄까지는 입력을 받는 부분이니 굳이 설명하지 않겠음. go 함수 재귀함수로 매개변수로 받는 add, sub, mul, div의 남은 개수를 파악하고 이에 따라서 다음 연산을 진행한다. 더이상 사용할 연산자가 없으면 계산 값을 res_l에 할당하고 재귀적으로 실행됐던 부분을 반대로 돌아간다. 이후 다른 순서로 또 재귀적으..
https://www.acmicpc.net/problem/23739 23739번: 벼락치기 유체이탈을 할 줄 아는 지환이는 수업에 출석은 했으나 수업을 듣지 않았다. 늘 그랬듯이 시험기간은 찾아오는 법, 지환이는 이제야 공부를 시작했다. $N$개의 챕터를 순서대로 공부해야 하는데, www.acmicpc.net 문제 입력 출력 문제 코드 N = int(input()) time = 30 chap = 0 while (N > 0) : time = 30 while (time > 0) and (N > 0): T = int(input()) if (time / T) >= (1 / 2) or (time >= T): chap += 1 time -= T N -= 1 else : time -= T N -= 1 print(ch..
알고리즘 범위에 해당하는 숫자들이 자릿수마다의 중복되는지 체크하면 된다. 같은 값이 있는지 확인하는 방법으로는 딕셔너리를 떠올렸고 아래와 같이 중복 체크를 해주었다. for item in hotel: d={'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0} flag=True for s in str(item): if s in d.keys(): d[s] += 1 for v in d.values(): if v >= 2 : flag=False if flag: ans.append(item) 전체 코드 while True: try: n,m=input().split() hotel=list(range(int(n),int(m)+1)) ans=[] ..
문제 https://www.acmicpc.net/problem/1855 1855번: 암호 준표와 세준이는 서로 솔루션을 토론 하면서 다른 사람이 자신들의 솔루션을 듣지 못하게 하도록 서로 메시지를 주고받을 때 메시지를 암호화 하여서 주고받았다. 암호를 만드는 방법은 다음과 www.acmicpc.net 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; char arr[20][20]; int main() { ios::sync_with_stdio(false); cin.tie..
문제 분석 입력의 형태는 주사위의 전개도 값을 주어진다. 이때 주사위의 값의 패턴이 없기 때문에 주사위가 쌓일 때 바닥과 천장의 값을 직접 찾아야 하고 같은 이유로 측면에 놓이는 값들을 구해야한다. 한 쪽 측면에 놓이는 값들의 합중에서 가장 큰 수를 원하기 때문에 한개의 주사위의 옆면에 해당하는 값들중 가장 큰 수만 선정하면 된다. 즉 주사위를 쌓는 경우에 대해서 찾으면 값은 알 수 있게 된다는 의미이다. #include #include using namespace std; // 아래면의 인덱스를 윗면으로 단순히 바꿔줌 int top_val(int index) { if (index == 0) return 5; if (index == 1) return 3; if (index == 2) return 4; i..
https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 문제 정수 n(1 n; // 짝수면 가능 // 5를 더해가면서 확인 while (cur
https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 0: a,b=map(int..
문제 링크 https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 분류 - 브루트포스 알고리즘 - 백트래킹 코드 n = int(input()) origin_infos = [list(map(int, input().split())) for _ in range(n)] ans = 0 def back(cnt, infos): global n, ans # 모든 계란을 던진 경우 if cnt == n: broken_cnt = 0 for info in ..
https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 분석 분류: 수학, 구현, 사칙연산 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 입력 5 11 23 34 98 52 예제 출력 2 5 7 17 7 소스코드 T = int(input()) for i in range(1, T+1) A,B = map(int, i..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (29 Page)