728x90

백준 단계별로 풀어보기 - 문자열 문제 5개 python으로 풀기


11654 - 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

print(ord(input()))

풀이 : 일반 문자 또는 숫자를 아스키 코드로 변환할 때에는 ord()를 사용한다. 반대로 할 때에는 chr()을 사용한다.


11720 - 숫자의 합

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

N = int(input())
num = str(input())
result = 0
for i in range(N):
    result += int(num[i:i+1])
print(result)

풀이 : 문자열 슬라이싱을 이용하여 한 개씩 분리하여 합한 결과를 출력해준다.


10809 - 알파벳 찾기

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

word = str(input())
alphabet = 'abcdefghijklmnopqrstuvwxyz'
result = ""
for ex in alphabet:
    result = result + str(word.find(ex)) + " "
print(result)

풀이 : "문자열".find("찾는 문자")를 이용하여 문제를 해결하였다. 단어를 입력받은 뒤 a~z까지 순서대로 위치를 찾아 결과값에 추가하여 준 뒤 최종적으로 완성된 결과를 출력해준다. find 함수는 단어의 처음부터 시작하여 찾는 문자가 존재하는 맨 처음 위치를 반환하여준다. 존재하지 않는다면 -1을 반환한다.


2675 - 문자열 반복

※ 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.

N = int(input())
for _ in range(N):
  result = ""
  num, word = map(str, input().split())
  for ex in word:
    result += ex * int(num)
  print(result)

풀이 : 반복횟수와 문자가 공백으로 구분되어 입력 되어지기 때문에 공백을 기준으로 두 개를 분리시키다. 그 후 for 문을 이용하여 문자의 처음부터 반복횟수만큼 반복시킨 결과를 result에 추가하여준다. 최종적으로 result를 출력한다.


1157 - 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

word = str(input()).upper()
existence = []; countlist = []
for ex in word:
  if ex not in existence: 
    existence.append(ex)
    countlist.append(word.count(ex))

result = 0; maximum = max(countlist)
for i in countlist:
  if i == maximum: result += 1

if result == 1: print(existence[countlist.index(maximum)])
else : print("?")

풀이 : 우선 입력 받은 문자열을 모두 대문자로 변환한다. 그 후 입력받은 문자열의 처음부터 살펴보며 existence, countlist에 각각 해당 알파벳과 사용된 횟수를 저장한다. 그 후 countlist를 살펴보며 가장 많이 사용된 횟수가 중복이 되는지 확인하여 준다. 중복이 되었다면 즉, 가장 많이 사용된 알파벳이 여러개 존재한다면 "?"를 출력하여준다. 그렇지 않으면 가장 많이 사용된 알파벳을 출력하여준다.

'코딩 공부 > 파이썬' 카테고리의 다른 글

백준 기본수학 1 풀이 - 1  (0) 2022.01.27
백준 문자열 풀이 - 2  (0) 2022.01.24
백준 함수 문제풀이  (0) 2022.01.18
백준 1차원 배열 문제풀이  (0) 2022.01.17
백준 While문 문제풀이  (0) 2022.01.14

+ Recent posts