공부하기/백준 500

[Python] 백준 풀기 2851 - 슈퍼마리오

파이썬 백준 2851번 브론즈 1 https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 문제 보기 분류: 구현, 브루트포스 알고리즘, 누적 합 문제 풀기 누적 합이 100 을 넘기지 못했을 경우에 대한 조건을 추가해야 한다는 것을 잊지 말아야 한다. 코드 보기 import sys inputdata = sys.stdin.readline if __name__ == "__main__": running_total_ls = [0] * 10 running_total_ls[0] = int(inputdata().strip()..

공부하기/백준 2023.01.10

[Python] 백준 풀기 2562 - 최댓값

파이썬 백준 2562번 브론즈 3 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 주어진 숫자들을 리스트에 저장한 후 하나씩 빼내어 최댓값을 찾는다. 다시 for loop 을 통해 리스트 안의 값에서 이미 저장된 최댓값과 같은 값이 나올경우 그 값과 위치인 i + 1 을 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnW..

공부하기/백준 2023.01.09

[Python] 백준 풀기 2455 - 지능형 기차

파이썬 백준 2455번 브론즈 3 https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 for loop 이 돌때마다 각 역에서 내린 사람 수, 탄 사람 수를 입력받고 총 승객의 수를 업데이트를 한다. 이 결과를 리스트에 모아 저장을 한 후 max() 함수를 이용하여 최대값이 출력 되도록 한다. 코드 보기 import sys inputdata = sys.stdin.readline if __name__ ..

공부하기/백준 2023.01.08

[Python] 백준 풀기 1302 - 베스트셀러

파이썬 백준 1302번 실버 4 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 보기 분류: 자료 구조, 문자열, 정렬, 해시를 시용한 집학과 맵 문제 풀기 리스트에 책의 정보를 모두 입력받고 알파벳 순으로 정렬을 한다. 서로 인접한 리스트인 i-1, i 번째를 각각 비교하면서 동일한 책이면 카운트 +1 을 다른 책이면 카운트를 초기화한다. 카운트의 값이 지금까지 누적된 max_count 보다 커지면 새로이 베스트셀러 책으로 등록을..

공부하기/백준 2023.01.07

[Python] 백준 풀기 11948 - 과목 선택

파이썬 백준 11948번 브론즈 4 https://www.acmicpc.net/problem/11948 11948번: 과목선택 JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다. JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 물리, 화학, 생물, 지구과학 4 과목과 역사, 지리 2 과목을 나누어 리스트에 입력 받는다. 오름차순 정렬을 하고 최고 점수의 합이 나올 수 있는 4 개중 3 개, 2 개중 1 개의 과목을 선택하여 전체 합을 구한다. 코드 보기 import sys inputdata = sys.stdin...

공부하기/백준 2023.01.06

[Python] 백준 풀기 1269 - 대칭 차집합

파이썬 백준 1269번 실버 4 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 보기 분류: 자료 구조, 해시를 사용한 집학과 맵, 트리를 사용한 집학과 맵 문제 풀기 각 집합의 원소의 개수가 200,000 개여서 시간 초과 안걸릴거라 생각했다가 제출하고 보니 x in List 연산 이 O(n) 의 시간 복잡도를 갖는다는 것을 알았다. 이번 기회를 통해 파이썬의 집합 기호에 대해 알게 되었다. 교집합 set_a & set_b 합집합 ..

공부하기/백준 2023.01.05

[Python] 백준 풀기 1100 - 하얀 칸

파이썬 백준 1100번 브론즈 2 https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 주어진 문자열을 한 줄의 리스트에 모두 넣고 짝수 index (흰색 칸) 에 대해 'F' 가 있는지 검사한다. 이때 리스트에 입력되는 각각의 row 줄은 흰색과 검은색이 변경되기 때문에 마지막에 index 를 하나 늘리기 위한 문자 '0' 을 매 줄 추가시킨다. 코드 보기 import sys inputdata = sys..

공부하기/백준 2023.01.04

[Python] 백준 풀기 2822 - 점수 계산

파이썬 백준 2822번 실버 5 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 문제 보기 분류: 정렬 문제 풀기 입력되는 점수들을 score_ls 리스트 index 와 문제 번호가 일치하도록 입력 받는다. 점수 리스트를 내림차순으로 정렬을 하고 가장 큰 앞쪽 5 개만 남겨두고 나머지를 제거한다. 입력 리스트 score_ls 의 원소를 문제 번호에 맞게 순차적으로 빼내어 5 개로 정렬된 리스트의 원소에 있는지 없는지를 판별하여 있다면 그..

공부하기/백준 2023.01.03

[Python] 백준 풀기 11441 - 합 구하기

파이썬 백준 11441번 실버 3 https://www.acmicpc.net/problem/11441 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net 문제 보기 분류: 누적 합 문제 풀기 주어진 모든 숫자들에 대하여 순차적으로 누적 합을 구하여 새 리스트에 저장을 한다. 예제 입력 1 의 경우 리스트의 index 를 맞추기 위해 0 으로 시작해서 0+10, 0+10+20, 0+10+20+30, ,,, 규칙으로 저장해 나간다. 결과적으로 i ..

공부하기/백준 2023.01.02

[Python] 백준 풀기 1431 - 시리얼 번호

파이썬 백준 1431번 실버 3 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 문제 보기 분류: 정렬 문제 풀기 가장 바깥 리스트를 시리얼 번호 최대 길이인 50+1 로 지정하고 기타의 시리얼 번호를 입력받을 때마다 각 index 에 맞게 누적하여 저장한다. 저장하기 전에 함수 fnSumOfNum(serial) 에 넣어 숫자만 판별하여 그 수를 모두 더하고 sNum_serial 에 첫 번째에 그 합을 두 번째에 시리얼 번호를 모은다. 예..

공부하기/백준 2023.01.01