본문 바로가기

코딩/백준

(8)
[백준] 15888번 : 정답은 이수근이야!! (Python 파이썬) 알고리즘 분류 : 수학, 브루트포스 알고리즘 https://www.acmicpc.net/problem/15888 15888번: 정답은 이수근이야!! 0이 아닌 세 개의 정수 A, B, C가 주어진다. (-100 ≤ A, B, C ≤ 100) 이는 Ax2 + Bx + C = 0꼴인 이차방정식의 계수를 의미한다. www.acmicpc.net [ 풀이 ] 이 문제는 이차방정식의 판별식과 근을 구하는 근의 공식을 알아야 풀 수가 있다. ax²+bx+c=0 꼴인 이차방정식에서 서로 다른 두 근이 존재하려면 판별식 b^2 - 4*a*c>0 이 되야 한다. 그리고 이 부등식을 만족시킨다고 해도 답이 "이수근"이 되려면 두 근이 모두 2^k 가 되야 한다. 이때 두 근을 근의 공식으로 구하고 두 근이 2^k 인지 구하..
[백준] 15887번 : 욱제는 결벽증이야!! (Python 파이썬) 알고리즘 분류 : 구현, 정렬, 구성적 https://www.acmicpc.net/problem/15887 15887번: 욱제는 결벽증이야!! 욱제는 카드 게임에서 1부터 N까지의 정수가 중복되지 않게 하나씩 적혀있는 N개의 카드를 배정 받았다. 욱제는 배정 받은 카드를 책상 위에 일렬로 배열했다. 하지만 결벽증이 있는 욱제는 카드 www.acmicpc.net [ 풀이 ] 이 문제는 주어진 리스트를 정렬하기 위해서 필요한 횟수와 리스트의 어떤 부분을 reverse 하면 되는지 구하는 문제다. 이 문제는 리스트가 정렬되기 위해서 최수 횟수를 구하는 게 아니기 때문에 하나씩 그 자리를 맞춰주면 된다. 예를 들어, [2, 1, 5, 4, 3]을 [1, 2, 3, 4, 5]로 만들기 위해서는 아래의 과정이 필요..
[백준] 2840번 : 행운의 바퀴 (Python 파이썬) 알고리즘 분류 : 구현, 시뮬레이션 https://www.acmicpc.net/problem/2840 2840번: 행운의 바퀴 첫째 줄에 마지막 회전에서 화살표가 가리키는 문자부터 시계방향으로 바퀴에 적어놓은 알파벳을 출력한다. 이때, 어떤 글자인지 결정하지 못하는 칸은 '?'를 출력한다. 만약, 상덕이가 적어놓 www.acmicpc.net 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import sys n, k = map(int, input().split()) x = [0 for _ in range(n)] idx = 1 for i in range(k): a, b = input().split() idx -= int(..
[백준] 1091번 : 카드 섞기 (Python 파이썬) 알고리즘 분류 : 구현, 시뮬레이션 https://www.acmicpc.net/problem/1091 1091번: 카드 섞기 지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0 www.acmicpc.net 풀이 1. 원래 배열 p를 ori라는 배열에 넣어놓고, 배열 g([0, 1, 2 ~~~]), 새로운 배열 new를 만든다. 2. 배열 p와 목표 배열 g가 같아질 때까지 반복 - 배열 new에 s[i] 번째 인덱스에 p[i]를 넣는다. - 배열 p에 new를 넣고 new는 초기화한다. ※ -1 을 출력하는 조건 원래 배열이었던 ori와 새로 만..
[백준] 1700번 : 멀티탭 스케줄링 (Python 파이썬) 알고리즘 분류 : 그리디 알고리즘 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net [ 코드 ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 n, k = map(int, input().split()) t = list(map(int, input().split())) plug = [0] * n cnt = 0 idx = pos = ch_idx = 0 for i in t: if not i in p..
[백준] 2858번 : 기숙사 바닥 (Python 파이썬) 알고리즘 분류 : 수학, 브루트포스 알고리즘, 사칙연산 www.acmicpc.net/problem/2858 2858번: 기숙사 바닥 첫째 줄에 상근이네 방의 크기 L과 W을 공백으로 구분하여 출력한다. 만약, 두 수가 다르다면, 큰 수가 L이 되고 작은 수가 W이 된다. 항상 정답이 유일한 경우만 입력으로 주어진다. www.acmicpc.net [ 주석 있는 코드 ] 1 2 3 4 5 6 7 8 9 r, b = map(int,input().split()) size = r + b # 방의 크기 (가로 * 세로) i = 3 # 방의 세로는 항상 3 이상 while True: # 답이 있는 경우만 주어지니 i가 3부터 계속 비교 if size % i == 0: # 직사각형이 되는 경우 if (i - 2) * ..
[백준] 5462번 : POI (Python 파이썬) www.acmicpc.net/problem/5462 5462번: POI 1번 문제를 풀지 못한 사람은 1명, 2번 문제를 풀지 못한 사람은 2명, 3번 문제를 풀지 못한 사람은 4명이기 때문에, 각 문제의 점수는 1,2,4점이다. 이에 따라 1번 참가자는 4점을 획득하고, 2번 참가 www.acmicpc.net 필립의 등수 조건 조건 1: 자신보다 많은 점수를 획득한 참가자의 수 조건 2: 점수는 같지만 더 많은 문제를 푼 참가자의 수 조건 3: 점수와 푼 문제의 수가 같지만 ID가 더 빠른 참가자의 수 (ID는 입력받은 순서대로) [ 주석 있는 코드 ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 n,t,p = map(int..
[백준] 20114번: 미아 노트 (Python 파이썬) 알고리즘 분류 : 문자열 https://www.acmicpc.net/problem/20114 20114번: 미아 노트 첫째 줄에 원래 문자열의 길이 N, 세로로 번진 글자의 개수 H, 가로로 번진 글자의 개수 W가 주어진다. (1 ≤ N ≤ 100, 1 ≤ H ≤ 10, 1 ≤ W ≤ 10) 둘째 줄부터 H개의 줄에 걸쳐 N × W 길이의 문자열이 www.acmicpc.net [ 코드 ] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def note(i): # 문자열 만드는 함수 global ans for j in range(w*i,w*(i+1)): # 노트를 문자열의 길이만큼 나눔 for k in range(h): if s[k][j]!='?': # 나눈 부분 중에서 '?'가 아닌..