공부하기/백준 502

[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

[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