공부하기/백준 500

[Python] 백준 풀기 11728 - 배열 합치기

파이썬 백준 11728번 실버 5 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제 보기 분류: 정렬, 두 포인터 문제 풀기 올해 2022년 마지막 날에 푸는 마지막 백준 문제이다. 시간복잡도를 주의해야 할 것 같다. 각각의 배열의 최대 크기는 1_000_000 까지 주어지기에 extend() 함수를 이용하면 뒤에 붙여질 배열의 최대 크기인 1_000_000 까지 시간복잡도가 발생한다. O(len(othe..

공부하기/백준 2022.12.31

[Python] 백준 풀기 11655 - ROT13

파이썬 백준 11655번 브론즈 1 https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 개별 알파벳 문자를 ASCII 코드와 대응하는 10진수로 변환한다. 변환된 숫자로 기준이될 10진수 위치를 0에 고정하여 +13 쉬프트 시키고 26으로 나눈 나머지를 통해 Z 이후의 알파벳의 숫자를 재조정한다. c = ((c - 65) + 13) % 26 + 65 c = ((c - 97) + 13) % 26 + 97 10진수를 다시 알파벳으로 변환하고 합쳐 출력한다. input() 을 이용..

공부하기/백준 2022.12.30

[Python] 백준 풀기 2941 - 크로아티아 알파벳

파이썬 백준 2941번 실버 5 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 크로아티아 알파벳을 리스트에 저장한 후 하나씩 뽑아 주어진 단어에서 해당 문자열을 찾는다. 함수 replace() 를 이용하여 크로아티아 알파벳을 단일 특수 문자로 변환 시킨다. 일반 알파벳과 단일 특수문자인 @ 으로 새로이 작성된 단어의 길이를 구해 총 알파벳의 개수를 출력한다. 코드..

공부하기/백준 2022.12.29

[Python] 백준 풀기 1453 - 피시방 알바

파이썬 백준 1453번 브론즈 2 https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 리스트로 100개의 컴퓨터 자리를 0으로 초기화 하여 생성한다. 손님이 원하는 자리의 index가 0으로 되었있으면 빈 자리이기에 1로 바꾸어 준다. 만약 손님이 원하는 자리가 0이 아닌 1로 되어있을 경우 변수 count를 하나씩 올려준다. 코드 보기 import sys inputdata = sys.stdin.readline def fnNumberOfRejectio..

공부하기/백준 2022.12.28

[Python] 백준 풀기 5635 - 생일

파이썬 백준 5635번 실버 5 https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현, 문자열, 정렬 문제 풀기 분할되어있는 일, 월, 년 숫자를 공백없이 년월일(20221227) 8자리 숫자로 붙이고 이름과 함께 리스트에 저장한다. 문자형 숫자로 된 생일을 정렬하여 가장 나이가 많은 사람, 가장 나이가 적은 사람을 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnRearrange(): restdt_info = [] if len(stdt_info[..

공부하기/백준 2022.12.27

[Python] 백준 풀기 1475 - 방 번호

파이썬 백준 1475번 실버 5 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 6 과 9 는 같은 번호로 생각하여 한가지로 통일 시킨다. 입력된 방 번호를 리스트에 저장하고 하나씩 순차적으로 빼내어 리스트 sign_ls 의 index 에 맞춰 카운트 한다. 세트 하나 당 6 이 두 개 들어 있기에 sign_ls[6] = (sign_ls[6] + 1) // 2 로 세트의 개수를 맞추고, 최종 저장된 sign_ls 의 value 중 최대값을 출력한다. 코드 보기 import sys inputdata = sys...

공부하기/백준 2022.12.26

[Python] 백준 풀기 5800 - 성적 통계

파이썬 백준 5800번 실버 5 https://www.acmicpc.net/problem/5800 5800번: 성적 통계 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 www.acmicpc.net 문제 보기 분류: 구현, 정렬 문제 풀기 두번째 줄부터 학생수와 점수를 같이 입력을 받기 때문에 deque() 를 이용하여 제일 왼쪽 학생수를 제거한다. deque() 를 정렬하기 위해 list() 함수를 이용하여 변환하고 sort(reverse = True) 를 이용하여 내림차순 정렬을 한다. 내림차순 정렬으로 Max 와 Min 의 값..

공부하기/백준 2022.12.25

[Python] 백준 풀기 1316 - 그룹 단어 체커

파이썬 백준 1316번 실버 5 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 맨 왼쪽 문자를 빼내고 그 다음 문자와 비교한다. 서로 같은 문자이면 일단 조건문을 통과하고, 만약 다른 문자가 나올때 그 남은 문자 묶음에서 빼어낸 문자가 있는지 확인한다. 있다면 return 0 으로 함수를 종료한다. word 의 단어가 1개 남을때까지 조건 (그룹 단어가 안되는 조건) ..

공부하기/백준 2022.12.24

[Python] 백준 풀기 2720 - 세탁소 사장 동혁

파이썬 백준 2720번 브론즈 3 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 사칙연산 문제 풀기 각각의 동전에 대해 몫과 나머지를 구하는 방법으로 해결한다. 주어진 입력값인 거스름돈에 대해 제일 큰 숫자인 25센트부터 몫을 구하고 그 나머지를 다음 연산 거스름돈으로 보낸다. 이 과정을 10센트, 5센트 그리고 1센트에 반복 적용하여 각각의 계산 결과 몫이 나타내는 동전의 개수를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readl..

공부하기/백준 2022.12.23

[Python] 백준 풀기 14719 - 빗물

파이썬 백준 14719번 골드 5 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 보기 분류: 구현, 시뮬레이션 문제 풀기 맨 아래 블록을 한 줄씩 제거해가며 그 라인에 물이 담긴 사각형의 개수를 누적하여 더한다. 블록이 저장된 리스트를 왼쪽에서 오른쪽으로 관찰을 진행하며 블록이 있는 곳에서 없는 곳으로 바뀌는 조건 if block_ls[i] != block_ls[i - 1] and block_ls[i] == 0: 을 찾..

공부하기/백준 2022.12.22