본문 바로가기

Python5

[Python] 백준 3085번 - '사탕 게임' 풀이 https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 코드 import sys ans = 0 def check_horizontal(): global ans for i in range(N): cnt = 1 for j in range(1, N): if board[i][j] == board[i][j-1]: cnt += 1 else: cnt = 1 if cnt > ans: ans = cnt def check_vertical(): global ans for i in range(N): cnt = 1 for j in range(1, N): if board[j][i] == boar.. 2023. 1. 17.
[Python] 백준 2980번 - '도로와 신호등' 풀이 https://www.acmicpc.net/problem/2980 2980번: 도로와 신호등 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔 www.acmicpc.net 풀이 제일 먼저 시간을 리턴하는 함수를 어떻게 구현할지를 생각해보았습니다. 예제 2를 보며 설명하겠습니다. 도로는 사진과 같습니다. 현재까지 누적된 시간을 변수 time에 저장한다고 하고, R과 G는 문제에서 주어진 빨간불 지속시간, 초록불 지속시간 이라고 합시다. 1) 0에서 7까지 가는데에 7초가 걸릴 것입니다. (time = 7) 그리고 7에서 R - time = 6 이고, 6 - G = 1 이므.. 2023. 1. 16.
[Python] 백준 1780번 - '종이의 개수' 풀이 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 풀이 9를 입력받게 된다면, 9x9 배열을 만들게 되고, 모든 숫자가 같지 않을 때에 9개로 종이를 나눕니다. 나눈 종이에서의 모든 숫자가 같지 않은 경우 마찬가지로 해당 종이를 9개의 종이로 나누고 같지 않으면 또 나누는 문제입니다. 따라서 재귀함수를 이용할 수 있는 문제입니다. 재귀함수에서 진행할 내용은 1. 현재 종이가 모두 같은 수로 이루어져 있는지 , 2. 만약 1이 아니라면 .. 2023. 1. 15.
[Python] 백준 1181번 : 단어정렬 풀이 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 코드 import sys N = int(sys.stdin.readline().strip()) str_dic = {} str_key = '' for i in range(N): str_key = sys.stdin.readline().st.. 2023. 1. 4.
[Python] 백준 1546 풀이 문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대.. 2022. 12. 29.