본문 바로가기

728x90

알고리즘 예시/백준

(9)
[Baekjoon] 백준 #2798번 파이썬 해답 단계별로 풀어보기 → 브루트 포스에 위치한 문제입니다. Brute-force search 문제부터 보겠습니다. 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드..
[Baekjoon] 백준 #2738번 파이썬 해답 백준의 단계별 풀어보기 2차원 배열 행렬의 덧셈은 어떻게 만들까요 먼저 이번 문제부터 살펴보겠습니다. 출력자체는 단순합니다. 문제 읽기 문제 N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오. 입/출력 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다. 첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다. 3 3 1 1 1 2 2 2 0 1 0 3 3 3 4 4 4 5 5 100 4 4 4 6 6 6 5 6..
[Baekjoon] 백준 #11653번 파이썬 해답 baekjoon online judge의 단계별로 풀어보기 중 수학 부분입니다. 기본 수학 2, 일명 소인수분해 입니다. 분명 기본 수학이라고 되어있지만, 기본 단계는 아닌것 같습니다. 문제부터 한번 보겠습니다. 내용은 자체는 심플합니다. 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력/출력 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 해답 N = int(input()) if N == 1: print('') else: for i in range(2,N+1): while N%i == 0: print(i) N = N / i 아래는 초등수학 과정..
[Baekjoon] 백준 #2292번 파이썬 해답 통칭, 벌집문제입니다 백준의 단계별로 풀어보기 → 기본 수학1 부분에 위치하고 있습니다. 문제를 한번 읽어보겠습니다. 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지 (시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 부분 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 부분 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 입/출..
[Baekjoon] 백준 #1316번 파이썬 해답 백준 단계별로 풀어보기. 문자열의 마지막 순번입니다. https://www.acmicpc.net/problem/1316 문제 자체는 길지 않지만, 그안에 들어있는 논리나 해결구조는 결코 짧지 않은 구조였습니다. 백준의 문제설명부터 천천히 읽어보겠습니다. 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 이번 문제는 예시가 중요합니다. 예제 입력 1 3 happy ..
[Baekjoon] 백준 #4344번 파이썬 해답 백준 알고리즘 단계별로 풀어보기의 1차원 배열, 아홉번째, 문제입니다. 먼저 문제를 한번 읽어보겠습니다. 문제 제시 출력 부분에서 소수점 셋째 자리까지 출력해야 하는 것을 확인하실 수 있습니다. 이쯤에서 format, 혹은 F-스트링을 써야 한다는 생각이 들었으면 합니다. f'{p:.3f}%' 입력 예시도 보겠습니다. 정답 공개 C = int(input()) B=[] for _ in range(C): A = list(map(int, input().split())) av = sum(A[1:])/ A[0] # 평균 c = 0 for i in A[1:]: if i > av: c = c+1 p = (c / A[0])*100 # 퍼센트에이지 계산 print(f'{p:.3f}%') # 소숫점 형태로 변환함 (F-스..

728x90