파이썬 120

[Python] 백준 풀기 11945 - 뜨거운 붕어빵

파이썬 백준 11945번 브론즈 4 https://www.acmicpc.net/problem/11945 11945번: 뜨거운 붕어빵 입력으로 주어지는 각 행을 반전시켜서 출력하면 됩니다. 입력의 1행 1열은 출력의 1행 M열로, 입력의 1행 2열은 출력의 1행 M-1열로 … 입력의 1행 M열은 출력의 1행 1열로 … 입력의 N행 M열은 출력 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 주어진 모양을 문자 리스트로 입력 받는다. for loop 을 돌리면서 리스트의 마지막 원소를 꺼내는 pop() 메서드를 사용하여 하나씩 모두 꺼내면서 빈 문자열에 순차적으로 합쳐준다. 입력 받는 매 라인마다 뒤집어 준 직후 바로 출력한다. 코드 보기 import sys inputdata = sy..

공부하기/백준 2023.02.14

[Python] 백준 풀기 1032 - 명령 프롬프트

파이썬 백준 1032번 브론즈 1 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 출력된 결과들의 알파벳을 나누어 2 차원 리스트에 저장을 하고 세로로 모두 같은 문자인지 판단을 한다. 이때 for loop 을 이용하는 방법 보다는 column 형태로 새롭게 묶어고 함수 set() 을 통해 중복 제거를 통해 판단하기로 하였다. 2 차원 리스트를 column 으로 새롭게 묶는게 문제였는데 검색을 통..

공부하기/백준 2023.02.11

[Python] 백준 풀기 7567 - 그릇

파이썬 백준 7567번 브론즈 2 https://www.acmicpc.net/problem/7567 7567번: 그릇 그릇을 바닥에 놓았을 때 그 높이는 10cm 이다. 그런데 두 개의 그릇을 같은 방향으로 포개면 그 높이는 5cm만 증가된다. 만일 그릇이 서로 반대방향으로 쌓이면 높이는 그릇만큼, 즉 10cm 늘어난다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 그릇의 정보를 리스트에 입력하여 현재 리스트의 값과 다음 리스트의 값을 비교하여 판별한다. 전체 리스트 길이에서 하나를 뺀 위치까지 반복문을 돌리면서, 현재 index 그릇과 다음 index 그릇의 모양이 같으면 +5, 모양이 다르면 +10 을 누적해 더해간다. 코드 보기 import sys inputdata = s..

공부하기/백준 2023.02.05

[Python] 백준 풀기 1051 - 숫자 정사각형

파이썬 백준 1051번 실버 4 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 문제 보기 분류: 구현, 브루트포스 알고리즘 문제 풀기 모든 좌표에 대해 가능성을 탐색한다. 이때, 기준 좌표를 결정하여 그 좌표로부터 가로, 세로에 대해 같은 값이 있는지를 찾는다. 최소 넓이는 네 개의 같은 수가 존재하지 않은 하나의 수만 있을 경우이므로 1 로 초기화한다. 하나의 좌표를 기준으로 잡고 그 값을 저장하여 가로축에 대해서 같은 숫자가 있는지를 찾고..

공부하기/백준 2023.02.04

[Python] 백준 풀기 11718 - 그대로 출력하기

파이썬 백준 11718번 브론즈 5 https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 브론즈 5 문제임에도 불구하고 정답률이 낮아 질문 게시판을 참고하였다. sys.stdin.readline() 과 input() 의 차이를 한 부분 느낄 수 있는 문제이다. sys.stdin.readline 은 EOFError 를 사용할 수 없다. try, except 를 통해서 입력이 들어올 때와 입력..

공부하기/백준 2023.01.30

[Python] 백준 풀기 2605 - 줄 세우기

파이썬 백준 2605번 브론즈 2 https://www.acmicpc.net/problem/2605 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net 문제 보기 분류: 구현, 자료 구조 문제 풀기 학생 번호와 뽑은 번호표와의 관계를 통해 줄 선 순서를 확인해 보면, (학생 번호 - 번호표) 가 그 순서 위치임을 알 수 있다. 이 관계를 통해 해당 위치에 학생을 중간에 넣기 위해서 list, insert() 를 사용한다. index 를 학생의 번호와 맞추기 위해 index 0 에 0 을 초기화하여 리스트 studen..

공부하기/백준 2023.01.29

[Python] 백준 풀기 11723 - 집합

파이썬 백준 11723번 실버 5 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 문제 보기 분류: 구현, 비트마스킹 문제 풀기 비트마스킹이란 것을 사용하라는 문제 같은데 비트마스킹을 사용하지 않고 풀이하였다. 왜 그런지 모르겠지만 제출하고 채점하는 과정에서 퍼센트가 더디게 올라갔다. 집합 S 는 1 ~ 20 번호로 이루어진 집합이기에 index 에 맞춰 21 개의 0 으로 초기화된 리스트를 생성하고 조건에 맞게 0 또는 1 로 표시한다. 명령어와 데이터 또는 명령어만 입력되는 ..

공부하기/백준 2023.01.27

[Python] 백준 풀기 2635 - 수 이어가기

파이썬 백준 2636번 실버 5 https://www.acmicpc.net/problem/2635 2635번: 수 이어가기 첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다. www.acmicpc.net 문제 보기 분류: 수학, 브루트포스 알고리즘 문제 풀기 입력되어진 수에대해 모든 경우를 돌려본다. 만약 예제 입력과 같이 100 이 입력되었을때 99, 98, 97, ,,, 2, 1, 0 을 돌아가면 주어진 조건 "세 번째부터 이후에 나오는 모든 수는 앞의 앞의 수에서 앞의 수를 빼서 만든다." 를 만족하는 모든 경우를 따져본다. 이때, 가장 많은 수 집합이 나온 경우를 업데이트 하며 저장하고 출력한다. 코드 보기 import sys inputdata = sys.stdin.r..

공부하기/백준 2023.01.19

[Python] 백준 풀기 2628 - 종이자르기

파이썬 백준 2628번 실버 5 https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net 문제 보기 분류: 정렬 문제 풀기 종이 세로의 처음과 끝, 종이 가로의 처음과 끝 그리고 잘라야 하는 주어진 위치를 2차원 리스트 cutting_ls 에 모두 입력 받는다. 2차원 리스트를 모두 오름차순으로 정렬을 하여 세로 요소를 순차적으로 그 다음 가로 요소를 순차적으로 한 쌍씩 빼내어 그 차이를 각각 나누어 저장한다. height_ls 와 width_ls 에 저장된 잘린..

공부하기/백준 2023.01.18