Programming/Coding Problem

Programming/Coding Problem

BOJ 2231번 : 분해합

안녕하세요. 지난 포스팅의 BOJ 2798번 : 블랙잭에서는 브루트포스 알고리즘에 대한 간단한 설명과 함께 문제를 파이썬의 itertools 클래스를 이용해서 문제를 풀어보았습니다. 오늘도 브루트포스와 관련된 문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 브루트포스 제출 코드 N = int(input()) flag = 0 for i in range(1, 1000001) : temp = i sum = temp while temp != 0 : sum += temp % 10 temp //= 10 if sum == N : flag = 1 print(i) break if flag == 0 : print(0) 해설 이 문제는..

Programming/Coding Problem

BOJ 2798번 : 블랙잭

안녕하세요. 지난 포스팅의 BOJ 2447번 : 별 찍기 - 10에서는 재귀함수를 이용해서 별 찍기 문제를 풀어보았습니다. 오늘은 본격적으로 새로운 알고리즘인 브루스포스 (Brute-Force; BF) 알고리즘에 대해서 설명하고 이와 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 브루트포스 combination 함수 제출 코드 from itertools import combinations N, M = map(int, input().split()) numbers = map(int, input().split()) scores = sorted([M - sum(number) if M - sum(number) ..

Programming/Coding Problem

BOJ 2447번 : 별 찍기 - 10

안녕하세요. 지난 포스팅의 BOJ 17478번 : 재귀함수가 뭔가요? 에서는 재귀함수를 이용해서 문자열을 출력하는 문제를 풀어보았습니다. 오늘은 다시 이전에 반복문 파트에서 보았던 별 찍기 문제의 심화버전을 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 재귀함수의 정의 제출 코드 N = int(input()) star = [[' '] * N for i in range(N)] def stars(N, x, y) : if N == 3 : for i in range(3) : for j in range(3) : star[x + i][y + j] = '*' star[x + 1][y + 1] = ' ' else : for i i..

Programming/Coding Problem

BOJ 17478번 : 재귀함수가 뭔가요?

안녕하세요. 지난 포스팅의 BOJ 10870번 : 피보나치 수 5에서는 재귀함수를 이용해 피보나치 수열을 구하는 문제를 풀어보았습니다. 오늘은 재귀함수와 관련된 재미있는 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 재귀함수의 정의 전역변수 선언 : global 제출 코드 1 global N def recursive(n) : print('_' * (4 * (N - n)) + '"재귀함수가 뭔가요?"') if n == 0 : print('_' * (4 * (N - n)) + '"재귀함수는 자기 자신을 호출하는 함수라네"') else : print('_' * (4 * (N - n)) + '"잘 들어보게. 옛날옛날..

Programming/Coding Problem

BOJ 10870번 : 피보나치 수 5

안녕하세요. 지난 포스팅의 BOJ 10872번 : 팩토리얼에서는 컴퓨터공학에서의 재귀함수를 수학적인 점화식으로 표현하는 방법에 대해서 알아보았습니다. 따라서, 재귀함수와 관련된 문제는 점화식을 잘 세우는 것이 중요하다는 것을 알게 되었죠. 오늘도 재귀함수와 관련된 유명한 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 재귀함수의 정의 피보나치 수열의 정의 제출 코드 def fibonacci(n) : if n == 0 : return 0 elif n == 1 or n == 2 : return 1 else : return fibonacci(n - 1) + fibonacci(n - 2) print(fibonacci(..

Programming/Coding Problem

BOJ 10872번 : 팩토리얼

안녕하세요. 지난 포스팅의 BOJ 9020번 : 골드바흐의 추측에서는 기본 수학 2 카테고리의 마지막 문제로 소수와 관련된 문제를 풀어보았습니다. 핵심은 반복적인 소수 검정 이였습니다. 오늘부터는 수학적인 지식보다는 컴퓨터공학적 지식이 더욱 필요한 재귀함수와 관련된 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 재귀 함수의 정의 팩토리얼의 정의 제출 코드 def factorial(N) : if N == 1 or N == 0 : return 1 else : return N * factorial(N - 1) print(factorial(int(input()))) 해설 기본적으로 재귀함수(recursive func..

Programming/Coding Problem

BOJ 9020번 : 골드바흐의 추측

안녕하세요. 지난 포스팅의 BOJ 4948번 : 베트트랑 공준에서는 에라토스테네스의 체의 개념을 설명하고 실제로 구현해보았습니다. 오늘은 소수 관련 마지막 문제로 골드바흐의 추측에 대한 문제를 풀어보도록 하겠습니다. 지금까지 활용했던 소수 판별법을 적용하면 되기 때문에 크게 어렵지는 않습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 소수 판별 알고리즘 제출 코드 import math def is_prime(number) : for n in range(2, int(math.sqrt(number)) + 1) : if number % n == 0 or number == 1 : return False return True f..

Programming/Coding Problem

BOJ 4948번 : 베르트랑 공준

안녕하세요. 지난 포스팅의 BOJ 1929번 : 소수 구하기에서는 정수론 지식을 활용해서 보다 빠르게 소수 판별을 할 수 있는 방법에 대해서 알아보았습니다. 오늘은 이보다 더욱 빠르게 소수의 개수를 계산해야하는 문제를 풀기 위해 에라토스테네스의 체에 대한 개념을 알아보고 적용해보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 기본 구현능력 에라토스테네스의 체 제출 코드 while True : N = int(input()) if N == 0 : break prime = [1 for i in range(2*N+1)] prime[0] = prime[1] = 0 for number, _ in enumerate(prime) : if..

Johns Hohns
'Programming/Coding Problem' 카테고리의 글 목록 (7 Page)