목록Programming/Python (11)
Information Security Study
6096~6098번 문제에서 알게 된 점1. 리스트 문제# 좌표의 행, 열의 값을 1->0, 0->1로 뒤집는 문제d = list(list(map(int, input().split())) for _ in range(19))n = int(input())for i in range(n): x, y = map(int, input().split()) x -= 1 y -= 1 for j in range(19): if d[j][y] == 0: d[j][y] = 1 else: d[j][y] = 0 if d[x][j] == 0: d[x][j] = 1 else: d[x][j..
6091~6095번 문제에서 알게 된 점1. 종합 문제# 세 명의 문제 푸는 주기가 같아지는 날을 구하기a, b, c = map(int, input().split())# a, b, c는 세 명이 각각 문제 푸는 주기day = 1while True: if (day % a == 0) and (day % b == 0) and (day % c == 0): print(day) break else: day += 12. 리스트 문제# 입력값 중 겹치는 수 카운트하기# 호출 횟수 입력n = int(input())# 호출된 번호들을 리스트에 저장 (공백으로 구분된 n개의 숫자)tmp_list = list(map(int, input().split()))# 1번부터 23번까지..
6081~6090번 문제에서 알게 된 것1. 종합 문제### A~F 입력 시 16진수 구구단 출력하기a = input()a = int(a, 16) # 16진수 문자열을 정수로 변환for i in range(1, 16): # 1부터 15까지 print('%X*%X=%X' %(a, i, a * i))# 369 게임 중 박수 대신 X를 출력하기a = int(input())for i in range(1, a+1): # 1부터 a까지 if (i % 10 == 3) or (i % 10 == 6) or (i % 10 == 9): print('X', end=' ') else: print(i , end=' ')# r, g, b 컬러 조합 경우의 수와 총 개수 출력하기r, g,..
6061~6080번 문제에서 알게 된 것1. bitwise 연산a, b = map(int, input().split())print(a | b) # 비트단위로 or 연산 후 10진수로 출력print(a ^ b) # 비트단위로 xor 연산 후 10진수로 출력2. 삼항 연산result = (a if(a >= b) else b) # a가 b보다 크거나 같을 경우 a 출력, 아니면 b 출력3. if, elif, else문으로 조건문 작성하기# if, elif, else문으로 세 입력값 중 가장 작은 값 출력하기a, b, c = map(int, input().split())result = aif a # for문으로 a, b, c 중 짝수만 출력하기a, b, c = map(int, input().split())for..
6031~6060번 문제에서 알게 된 것python에서는 input() 사용 시 기본으로 문자로 인식한다!1. python에서 아스키를 사용하는 방법a = input() #파이썬의 input()은 기본으로 문자열로 인식한다.a = ord(a) #아스키 변환a = chr(a+1)#다음 문자로 변환print(a)2. 공백으로 구분하여 여러개의 입력값을 받는 방법a, b = map(int, input().split()) # map으로 여러개의 입력값을 받아 저장할 수 있다.3. print()에서 *으로 문자열 반복 출력하기a, b = input().split()b = int(b)print(a*b) # 문자열*정수 또는 정수*문자열은 정수만큼 문자열을 반복한다.4. python 기본 연산a, b = map(in..
6001~6030번 문제에서 알게 된 것python에서는 input() 사용 시 기본으로 문자로 인식한다! 1. python에서 구분자를 사용하는 방법# 입력 시a, b = input().split() # a와 b를 입력 받을 때 공백으로 구분c, d = input().split(':') # c와 d를 입력 받을 때 : 문자로 구분# 출력 시print(a, b) # 콤마 사용 시 공백 한 칸을 두고 출력print(a, b, sep='') # a와 b를 공백 없이 붙여서 출력하고 싶은 경우 sep을 ''으로 둔다.print(a, b, sep='-') # a와 b 사이에 - 출력 2. 진수 변환a = input()a = int(a) # python에서는 input() 사용 시 문자로 인식하기 때문에 int ..
거스름돈 문제 (Greedy Algorithm)문제 설명당신은 음식점의 계산을 도와주는 점원입니다. 손님에게 거슬러 줘야 할 돈이 n원일 때, 가장 적은 수의 동전으로 거슬러 주는 방법을 구하세요.사용 가능한 동전의 종류는 500원, 100원, 50원, 10원입니다.(단, 각 동전은 무한히 존재한다고 가정합니다.)입력 조건거슬러 줘야 할 금액 n (정수)출력 조건최소한의 동전 개수를 출력입력 예시n = 1260 출력 예시6 💡 500 × 2 + 100 × 2 + 50 × 1 + 10 × 1 = 1260 → 총 6개문제 풀이가장 큰 단위의 동전부터 차례대로 거슬러준다.그리디 알고리즘(Greedy Algorithm) 을 활용하여 매 순간 최선의 선택을 한다.Python의 set은 순서가 보장되지 않으므로,..
문제 설명큰 수의 법칙배열에 있는 수들을 이용해 특정 규칙에 따라 더했을 때 가장 큰 수를 만드는 법칙이 있습니다.N개의 자연수가 입력되며, 이 수들을 적절히 더해서 가장 큰 수를 만드는 문제입니다.단, 같은 인덱스에 해당하는 수는 연속해서 K번까지만 선택할 수 있습니다.예를 들어, 배열 [2, 4, 5, 4, 6]이 있고, M = 8, K = 3일 때,가장 큰 수 6을 3번 더하고두 번째로 큰 수 5를 1번 더하고다시 6을 3번 더하고, 5를 1번 더하는 식으로 반복합니다.이때 M번 더했을 때의 최대 총합을 구하세요.입력 형식첫째 줄: N(2 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000)둘째 줄: N개의 자연수 (각 수는 1 이상 10,000 이하)출력 형식..