
10815번. 숫자카드 ▼해설보기 더보기 1. 이진탐색 알고리즘 import sys n = int(sys.stdin.readline()) number_cards = list(map(int, sys.stdin.readline().split())) # 상근이가 가지고 있는 숫자 카드 입력 number_cards.sort() # 이진탐색을 위한 오름차순 정렬 m = int(sys.stdin.readline()) target_numbers = list(map(int, sys.stdin.readline().split())) # 판별해야하는 숫자카드 입력 # 이진탐색을 통해 해당 숫자가 존재하는지 확인한다. # 이진탐색 알고리즘 짜는 걸 연습하기 위해 해당 방법을 사용 # 타겟 숫자를 하나씩 뽑아서 상근이가 가지고..

2750번. 수 정렬하기 ▼해설보기 더보기 버블정렬 N = int(input()) numbers = [] for _ in range(N): numbers.append(int(input())) for i in range(len(numbers)): for j in range(len(numbers)) : if numbers[i] < numbers[j] : numbers[i], numbers[j] = numbers[j],numbers[i] for n in numbers : print(n) 삽입정렬 N = int(input()) nums = [] for _ in range(N) : nums.append(int(input())) # Insert Sort for i in range(1, len(nums)) : whi..

2798번. 블랙잭 ▼해설보기 더보기 N, M = map(int, input().split()) card_num = list(map(int, input().split())) result = 0 for i in range (N): for j in range (i+1, N): for k in range(j+1, N): if card_num[i] + card_num[j] + card_num[k] > M : continue else : result = max(result,card_num[i] + card_num[j] + card_num[k] ) print(result) 1. 모든 경우의 수를 다 찾아봐야 하는 완전탐색 문제이다. N, M = map(int, input().split()) card_num = li..

10872. 팩토리얼 ▼해설보기 더보기 1. 재귀함수 코드 def factorial(n): result = 1 if n > 0 : result = n * factorial(n-1) return result n = int(input()) print(factorial(n)) 2. for문 코드 n = int(input()) result = 1 if n > 0: for i in range(1, n+1): result *= i print(result) 1. 코드에 대한 전체적인 풀이 내용 *팩토리얼 (=계승) : 1부터 n까지 양의 정수를 모두 곱한 수이다. 0!=1로 약속하고 n!=n*(n-1)! 의 성질을 가진다. 이와 같은 팩토리얼의 특성을 토대로 코드를 작성했다. 0!=1의 성질을 가지기 때문에 입력받는..

1978번. 소수찾기 ▼해설보기 더보기 n = int(input()) numbers = map(int, input().split()) sosu = 0 for num in numbers: error = 0 if num > 1 : for i in range(2, num): # 2부터 n-1까지 if num % i == 0: error += 1 # 2부터 n-1까지 나눈 나머지가 0이면 error가 증가 if error == 0: sosu += 1 # error가 없으면 소수. print(sosu) 1. 코드에 대한 전체적인 내용 풀이 소수 : 1과 자기 자신으로 나눌 때만 나누어 떨어지는 자연수이다. 1은 소수가 아니고 2는 소수 중에 유일한 짝수이다. 2를 제외한 나머지 소수는 모두 홀수로 이루어져 있다...

1712. 손익분기점 ▼해설보기 더보기 a,b,c = map(int,input().split()) if b >= c: # 가변비용이 노트북 가격보다 같거나 크면 print(-1) else: print(a//(c-b)+1) 1. 코드에 대한 전체적인 풀이 이 문제는 최초로 이익이 발생하는 시점의 판매량을 출력하고 손익분기점이 존재하지 않으면 -1을 출력하는 문제이다. 손익분기점 계산은 간단한 수학식으로 풀 수 있다. 2. 총수입 = 고정비용 + 가변비용 위 식을 문제에서 주어진 알파벳을 이용하고 판매량을 N이라고 한다면 C*N = A + B*N으로 나타낼 수 있다. 이 식을 판매량인 N을 구하는 식으로 바꾸면 N= A/(C-B)가 된다. 이 식을 그대로 코드로 작성해서 문제를 풀었다. 3. if조건식으로 ..

11654. 아스키 코드 ▼해설보기 더보기 print(ord(input())) cf) chr( )함수 chr 함수는 ord 함수의 반대 기능을 한다. 아스키코드에 해당하는 숫자를 입력하면 그에 해당하는 문자열을 출력 한다. chr(100) d 11720. 숫자의 합 ▼해설보기 더보기 1. sum 함수를 이용 n = input() print(sum(map(int,input()))) 2. for문을 이용 n = input() nums = input() total = 0 for i in nums : total += int(i) # total= total+int(i) print(total) 1. sum함수 이용 처음에 입력받는 숫자의 개수 n은 입력만 받은 후 활용하지 않았다. 두 번째 입력받는 n개의 숫자가 ..

15596. 정수 N개의 합 ▼해설보기 더보기 1. sum 함수를 이용한 코드 def solve(a): return sum(a) 2. for문을 이용한 코드 def solve(a): total = 0 for x in a: total += x return total 1. 작성한 코드에 대한 전체적인 내용 solve(a) 함수는 정수 n개가 주어졌을 때 주어진 정수의 합을 구하는 함수이다. 함수를 생성할 때는 def 예약어를 이용하면 된다. 함수가 실행해야 하는 문장은 들여 쓰기 해서 작성하고 반환하는 값은 return을 이용해서 작성한다. 함수의 이름은 함수의 생성자가 직접 만드는데 이번 문제는 solve( )라는 함수 이름이 주어져서 그대로 사용하였다. 2. sum함수를 이용해서 한줄로 작성 가능하다. ..

10818번. 최소, 최대 ▼해설보기 더보기 N = int(input()) a = list(map(int,input().split())) print(min(a), max(a)) 자료를 리스트 형태로 저장한 후, 최댓값과 최솟값을 도출한다. 2562번. 최댓값 ▼해설보기 더보기 1. for문 코드 numbers = [] for _ in range(9): i = int(input()) numbers.append(i) print(max(numbers)) print(numbers.index(max(numbers))+1) 2. for문을 list comprehension으로 작성한 코드 numbers = [int(input()) for _ in range(9)] print(max(numbers)) print(nu..

2739번. 구구단 ▼해설보기 더보기 n = int(input()) for i in range(1,10) : print(n, "*", i, "=", n*i) 10950번. A + B - 3 ▼해설보기 더보기 t = int(input()) # 테스트 케이스 개수 t를 입력받음 for _ in range(t): # t 만큼 반복 a,b = map(int,input().split()) print(a+b) for반복문은 [ for 변수 in iterable자료형 ] 형태로 첫째줄을 작성할 수 있다. 이때, 반복 가능한 iterable 자료형의 요소 하나하나를 for문 안에서 사용해야 한다면 for과 in사이의 변수에 선언해서 이용할 수 있다. 그런데 이번 문제는 테스트 케이스로 입력받은 수 t만큼 반복을 하는 ..

10171번. 고양이 ▼해설보기 더보기 print(""" \ /\\ ) ( ') ( / ) \(__)| """) 역슬래시(\) 사용 시 : 두개를 연속해서 적어야 역슬래시 인식(\\) 1000번. A + B ▼해설보기 더보기 a, b = map(int, input().split()) print(a + b) 10869번. 사칙연산 ▼해설보기 더보기 a, b = map(int, input().split()) print(a + b) print(a - b) print(a * b) print(a // b) print(a % b) 10926번. ??! ▼해설보기 더보기 방법 1 print(input() + "??!") 방법 2 ID = input() print( ID + "??!") 18108번. 1998년생인 내..