본문 바로가기

코딩테스트

(55)
[백준/파이썬] 1373번: 2진수 8진수 (Python) 문제 https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 풀이 - 수학, 문자열 - 숫자를 리스트에 역순으로 담은 뒤, 3자리씩 끊어서 계산했다. 코드 n = list(input()) cnt, num = 1,1 sumN = 0 result = '' arr = [] # 슬라이싱을 통한 역순 for i in n[::-1]: arr.append(i) for idx in range(len(arr)): sumN = sumN + (int(arr[idx]) * num) num = num*2 cnt = cnt + 1 if cnt > 3 or idx == len(ar..
[백준/파이썬] 10951번: A+B - 4 (Python) 문제 https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 - 수학, 구현 - 해당 문제는 입력 개수에 제한이 없다. 따라서 try ... except 으로 풀면 두 수가 입력되지 않는 경우에 반복문이 끝난다. 코드 while True: try: a, b = map(int, input().split()) print(a+b) except: break
[백준/자바] 2573번: 윤년 (Java) 문제 https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 풀이 - 수학, 구현 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if((year%4 == 0 && year%100 != 0) || (year%400 == 0..
[백준/파이썬] 1373번: 2진수 8진수 (Python) 문제 https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 풀이 - 문자열, 구현 - 문자열을 역순으로 구하고 3자리씩 끊어서 8진수로 변환했다. 코드 n = list(input()) cnt, num = 1,1 sumN = 0 result = '' arr = [] # 슬라이싱을 통한 역순 for i in n[::-1]: arr.append(i) for idx in range(len(arr)): sumN = sumN + (int(arr[idx]) * num) num = num*2 cnt = cnt + 1 if cnt > 3 or idx == len(arr..
[백준/파이썬] 1769번: 3의 배수 (Python) 문제 www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 풀이 - 재귀 - 맨 처음 숫자를 입력받아 리스트에 담아 재귀를 수행하였는데 시간초과가 발생했다. 입력값을 문자열로 받아처리하였더니 시간초과문제 해결 코드 def func(string, cnt): if len(string) > 1: cnt += 1 t = 0 for i in string: t += int(i) func(str(t), cnt) else: if int(string) % 3 == 0: print(cn..
[백준/파이썬] 1712번: 손익분기점 (Python) 문제 www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 풀이 - 수학 - 반복문으로 풀면 시간초과가 뜬다. 코드 a,b,c = map(int,input().split()) if c - b
[백준/파이썬] 10829번: 이진수 변환 (Python) 문제 www.acmicpc.net/problem/10829 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net 풀이 - 재귀 코드 n = int(input()) arr = [] def recur(n): if n == 1: arr.append(1) elif n // 2 == 1: arr.append(n%2) arr.append(1) else: arr.append(n%2) recur(n//2) recur(n) for _ in range(len(arr)): print(arr.pop(), end='')
[백준/파이썬] 17478번: 재귀함수가 뭔가요? (Python) 문제 www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 코드 n = int(input()) def recur(i, n): print("____"*i + '"재귀함수가 뭔가요?"') if i == n: print("____"*i + '"재귀함수는 자기 자신을 호출하는 함수라네"') else: print("____"*i + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.') print("____"*i + "마을 사람들은 모두..