본문 바로가기

알고리즘

(138)
[백준 / 구현] 2979 : 트럭 주차 (python) 난이도 : 브론즈 2 문제 설명문제상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다.상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다.트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다.A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오.입력첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100)다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 ..
[구름LEVEL 유형 트레이닝 / 구현] 단풍나무 (python) 풀이import copyN = int(input())park = [0 for _ in range(N)]for i in range(N): park[i] = list(map(int, input().split()))present_park = copy.deepcopy(park) day = 0d = [[-1, 0], [1, 0], [0, -1], [0, 1]] # 상하좌우 while True: park = copy.deepcopy(present_park) all_maple = True for i in range(N): for j in range(N): if park[i][j] != 0: all_maple = False break if not all_maple: break if all..
[구름LEVEL 유형 트레이닝 / 구현] 어려운 문제 (python) 문제 설명N!의 결과값을 한자리로 출력하는 문제이다.N!의 결과값이 한자리가 아닌 경우 각 자리의 합을 더하는 과정을 반복하여 한자리 수로 출력한다.풀이N = int(input())answer = 1for i in range(2, N + 1): answer *= iwhile True: str_answer = str(answer) if len(str_answer) == 1: print(answer) break answer = 0 for i in str_answer: answer += int(i) 정석대로 N!의 값을 구한다.for문을 2부터 N + 1까지 돌면서 곱하면 N! 값을 구할 수 있다. 1은 의미가 없으므로 넣지 않았다. 그리고 while문을 돌면서 answer 값이 한 자리인지 확인한다...
[구름LEVEL 유형 트레이닝 / 구현] 계수기 만들기 (python) 문제 설명각 자리마다 최댓값이 다른 숫자판을 가진 계수기가 있다. 버튼을 누를 때마다 가장 오른쪽 자리 숫자가 1씩 증가한다. 계수기에 표시되는 숫자의 초기 상태와 각 자리의 최댓값이 주어질 때, k번 버튼을 누른 뒤 계수기 각 자리에 표시되는 숫자를 구한다. 각 자리의 숫자가 표시할 수 있는 숫자가 최댓값보다 커지면 0으로 초기화하고 왼쪽 자리 숫자를 1 증가시킨다. 만약 가장 왼쪽 자리 숫자가 최댓값을 넘어간다면 왼쪽 자리가 없기 때문에 올림을 전파하지 않는다.풀이N = int(input())max_value = list(map(int, input().split()))present_value = list(map(int, input().split()))K = int(input())cnt = 0while..
[구름LEVEL 유형 트레이닝 / 구현] 장마 (python) 문제 설명마을 내 각각 집의 땅 높이가 주어지고, 장마가 내린 뒤 땅 높이를 구하는 문제이다.장마 기간 동안 배수 시스템의 작동을 고려하여 땅 높이를 계산하면 된다. 배수 시스템은 3의 배수가 되는 날마다 작동하고, 작동 날짜를 기준으로 2일 이내에 비가 내린 위치에서만 작동한다.5 60 0 0 0 01 21 31 12 22 34 5예를 들어 위와 같은 입력을 받았다고 하자.집은 5개, 장마 기간은 6일이다. 배수 시스템은 3일째, 6일째에 작동한다. 3일째에는 1, 2, 3일 동안 비가 내린 위치에서, 6일째는 4, 5, 6일 동안 비가 내린 위치에서 작동한다.따라서 3일째에는 1, 2, 3번 집에 배수 시스템이 작동하고, 6일째에는 2, 3, 4, 5번 집에 배수 시스템이 작동한다. 풀이N, M = ..
[구름LEVEL 유형 트레이닝 / 구현] 딱지놀이 (python) 풀이round = int(input())for r in range(round): a = list(map(int, input().split())) b = list(map(int, input().split())) a_cnt = [0, 0, 0, 0, 0] b_cnt = [0, 0, 0, 0, 0] for i in range(a[0]): a_cnt[a[i + 1]] += 1 for i in range(b[0]): b_cnt[b[i + 1]] += 1 if a_cnt[4] == b_cnt[4]: if a_cnt[3] == b_cnt[3]: if a_cnt[2] == b_cnt[2]: if a_cnt[1] == b_cnt[1]: print("D") #무승부 elif a_cnt[1] ..
[구름LEVEL 유형 트레이닝 / 구현] 인공지능 청소기 (python) 풀이test_case = int(input())for t in range(test_case): X, Y, N = map(int, input().split()) move = abs(X) + abs(Y) if (move - N) 제일 처음 입력받는 test case 수를 test_case 변수에 입력받는다.테스트 케이스 수만큼 반복문을 돌면서 각각 로봇청소기가 도달할 수 있는지 없는지를 YES 또는 NO로 출력한다. (0, 0)에서 (X, Y)까지의 최소 이동 거리는 |X| + |Y|이다. 따라서 abs 함수를 이용하여 절댓값을 씌워준 값으로 이동 거리를 계산하여 move 변수에 저장한다. 로봇 청소기가 도달 가능하기 위해서는 이동거리가 N보다 작거나 같아야하고 (이동거리가 N초보다 더 크면 당연히 그 시간..
[구름LEVEL 유형 트레이닝 / 구현] 소금물의 농도 구하기 (python) 풀이import mathN, M = map(int, input().split())salt = 0.07 * Nanswer = (salt / (N + M)) * 100print (f"{(math.trunc(answer * 100) / 100):.2f}") 소금물의 농도 = 소금 양 / 소금물의 양 * 100위 공식을 이용하여 풀면 된다.소금물의 양이 N, 소금물의 농도가 7%로 주어지므로, 소금 양은 (0.07 * N)g이 된다.소금을 추가했을 때 새로워진 소금물의 농도를 소수 2번째 자리까지 표현하고 나머지는 버려야한다. 따라서 trunc을 사용해 소수점 자리를 버리고, f-string을 이용해 소수점 2번째 자리까지 표현했다.(f-string을 추가로 사용한 이유는 답이 trunc로 소수점 2번째 자리까..

반응형