문자열 110

[Python] 백준 풀기 11656 - 접미사 배열

파이썬 백준 11656번 실버 4 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 보기 분류: 문자열, 정렬 문제 풀기 생성된 접미사를 저장할 리스트 s_ls 생성하고 첫 문자 s 를 저장한다. s 의 문자 길이 - 1 만큼 for loop 을 실행하고, 이때 문자의 맨 앞자리를 하나씩 제거하고 이를 리스트에 누적 시킨다. 사전순으로 정렬하기 위해 sort() 함수를 이용하여 정렬을 한 후, 순서대로 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSuffix..

공부하기/백준 2022.12.20

[Python] 백준 풀기 1259 - 팰린드롬수

파이썬 백준 1259번 브론즈 1 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 숫자의 각자리를 deque() 를 이용하여 하나하나 입력 저장한다. 입력으로 한자리 수가 들어오면 바로 "yes" 를 출력하여 끝내고, 그렇지 않으면 deque 의 성질을 이용하여 popleft() 와 pop() 으로 리스트 양 끝의 숫자를 하나씩 빼어 같은지를 비교한다. 만약, while loop 을 도는 동안 같지 않으면 "no" 를..

공부하기/백준 2022.12.15

[Python] 백준 풀기 10824 - 네 수

파이썬 백준 10824번 브론즈 3 https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 문제 보기 분류: 수학, 구현, 문자열, 사칙연산 문제 풀기 네 개의 수를 각각 입력 받아 함수 str() 을 사용하여 문자형으로 변환을 하여 각각 붙여준 뒤, 함수 int() 를 사용하여 다시 숫자형으로 변환하여 합 계산을 한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSum(A, B, C, D): AB = str(A) + str(B) CD = str(C) + str(D) # print(AB..

공부하기/백준 2022.12.14

[Python] 백준 풀기 12904 - A와 B

파이썬 백준 12904번 골드 5 https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 문제 보기 분류: 구현, 문자열, 그리디 알고리즘 문제 풀기 역으로 T 에서 S 로 변경이 가능한지를 확인한다. 이 문제로 주어진 문자열을 다루는 것에 대해 일부 학습이 되었다. 맨 뒷 문자 확인, 맨 뒷 문자 제거, 문자 전체 뒤집기. while loop 를 실행하면서 같은 T 와 S 가 같아질 때까지 반복을 하여 조건을 만..

공부하기/백준 2022.12.07

[Python] 백준 풀기 2743 - 단어 길이 재기

파이썬 백준 2743번 브론즈 https://www.acmicpc.net/problem/2743 2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 입력 데이터를 문자로 저장하고 len() 함수를 이용하여 그 문자의 길이를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline word = str(inputdata().strip()) print(len(word))

공부하기/백준 2022.11.27

[Python] 백준 풀기 1373 - 2진수 8진수

파이썬 백준 1373번 브론즈1 https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 문제 보기 분류: 수학 문자열 문제 풀기 2진수를 3자리씩 묶어 8진수로 변환하는 방법을 사용하였다. https://www.rapidtables.com/convert/number/binary-to-octal.html Binary to Octal Converter From Binary Decimal Octal Hexadecimal Text To Binary Decimal Octal Hexadecimal Text www.rapidtables.com 입력받은 2진수를 문자로..

공부하기/백준 2022.11.24

[Python] 백준 풀기 2902 - KMP는 왜 KMP일까?

파이썬 백준 2902번 브론즈2 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 이름과 하이픈을 모두 리스트로 나누어 입력받는다. 하이픈 및 소문자는 모두 무시하고 대문자만 출력한다. 입력받은 문자형태의 리스트를 for loop 을 돌리면서 그 단위 문자가 대문자이면 연속하여 프린트한다. 코드 보기 import sys inputdata = sys.stdin.readline de..

공부하기/백준 2022.11.20

[Python] 백준 풀기 1181 - 단어 정렬

파이썬 백준 1181번 실버5 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 보기 분류: 문자열, 행렬 문제 풀기 한 단계 한 단계 set() 과 sort() 함수를 사용하여 풀었다. 주어진 단어들을 리스트에 입력받고 set() 을 사용하여 중복제거 word_ls = list(set(word_ls)) sort() 를 사용하여 알파벳 순으로 정렬 word_ls.sort() sort(key = len) 을 사용하여 문자 길이 순으..

공부하기/백준 2022.11.19

[Python] 백준 풀기 1152 - 단어의 개수

파이썬 백준 1152번 브론즈2 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 빈공간으로 분류된 단어들로 이루어진 문장에서 단어의 개수를 찾는다. 전체 문장을 입력 받고 spilt() 을 통해 빈공간으로 각각 나누어 word_ls 에 저장한다. 저장된 리스트의 길이를 구해 단어의 개수를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline word_ls..

공부하기/백준 2022.11.10

[Python] 백준 풀기 1157 - 단어 공부

파이썬 백준 1157번 브론즈1 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 주어지는 단어의 길이는 1,000,000 이기 때문에 for loop 을 전체 돌리다가 혹시 시간 초과 걸릴까 싶어 최대한 파이썬 내장 함수를 이용하였다. 주어진 입력 문자를 하나하나 정리해가며 결과 출력을 시행하였다. 그 순서는 > 모두 대문자 변환 > 각각 문자 리스트 변환 저장 > set() 함수를 이용하여 중복 제거 및 존재 알파벳만 저장 > 존재 ..

공부하기/백준 2022.11.09