[algorithm] 백준 단계별 문제 풀이 (문자열 1탄)
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 단계별 문제 중 문자열을 다루는 문제들을 살펴보려합니다.
파이썬3 를 사용해 문제 풀이를 진행하겠습니다.
문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와
풀이를 비교해 보시는 걸 추천드립니다.
차근차근 풀어봅시다.
백준 BAEKJOON 11654
https://www.acmicpc.net/problem/11654
11654번: 아스키 코드
알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제 해석
입력받은 문자의 아스키 코드값을 출력하는 문제
풀이
print(ord(input()))
풀이 해석 및 팁
ord() 함수를 사용해 입력받은 문자의 아스키 코드값을 반환받고 출력합니다.
백준 BAEKJOON 2743
https://www.acmicpc.net/problem/2743
2743번: 단어 길이 재기
알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제 해석
알파벳으로 이루어진 문자열을 입력받아 길이를 출력하는 문제
풀이
print(len(input()))
풀이 해석 및 팁
len() 함수를 사용해 input()으로 입력받은 문자열(str형)의 길이를 구하고 출력합니다.
백준 BAEKJOON 9086
https://www.acmicpc.net/problem/9086
9086번: 문자열
입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으
www.acmicpc.net
문제 해석
문자열이 주어지면 첫 글자와 마지막 글자를 출력해주는 문제
문자열 인덱싱을 통해 해결 가능
풀이
n = int(input())
for _ in range(n):
str = input()
print(str[0]+str[-1])
풀이 해석 및 팁
문자열에 인덱스로 접근할 때 -1을 넣어주면 가장 마지막 인덱스를 반환해줍니다.
백준 BAEKJOON 11720
https://www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
문제 해석
처음에 숫자의 개수가 입려값으로 주어지고 다음 줄에 공백없는 수를 입력받습니다.
각각 한자리 수라고 생각하고 총합을 구하는 문제입니다.
풀이
a = input()
a = list(map(int, input()))
print(sum(a))
풀이 해석 및 팁
map() 함수를 사용하면 첫 줄에서 몇개의 숫자를 입력받든지 리스트로 변환해서
sum() 함수로 합을 구할 수 있습니다.
백준 BAEKJOON 10809
https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
문제 해석
입력받은 문제열에서 a에서 z까지 차례대로 처음 등장하는 인덱스를 출력하는 문제
풀이
import sys
s = sys.stdin.readline()
a = ord('a')
for i in range(0,26):
try:
print(s.index(chr(a+i)), end=' ')
except:
print(-1, end=' ')
풀이 해석 및 팁
문자열 s에 index() 함수로 특정 문자의 첫 등장 인덱스를 반환합니다.
존재하지않는 알파벳의 인덱스를 찾으려하면 에러가 발생하는데 이를 trt except 문으로 커버해줍니다.
여기까지 백준 단계별 문제 문자열 1탄의 풀이였습니다.
문자열을 다루는 방법은 다양하게 존재하지만 공부하면서 자신만의 노하우를 터득하시고
나에게 맞는 방법대로 문제를 풀어가시면 좋을 것 같습니다.
단, 시간복잡도를 신경써야하는 문제라면 나만의 방법보다는 최대한 빠른 풀이법이 좋겠죠?
궁금하신점이나 도움이 필요한 부분이 있다면 댓글로 남겨주시바랍니다.
감사합니다.
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 단계별 문제 풀이 (심화 1탄) (0) | 2023.03.01 |
---|---|
[algorithm] 백준 단계별 문제 풀이 (문자열 2탄) (0) | 2023.02.24 |
[algorithm] 백준 단계별 문제 풀이 (함수) (0) | 2023.02.18 |
[ algorithm ] 백준 단계별 문제 풀이 (1차원 배열 2탄) (0) | 2023.02.15 |
[ algorithm ] 백준 단계별 문제 풀이 (1차원 배열 1탄) (0) | 2023.02.14 |