https://www.acmicpc.net/problem/5218
5218번: 알파벳 거리
첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 두 단어가 공백으로 구분되어져 있다. 단어의 길이는 4보다 크거나 같고, 20보다 작거나 같으며, 알
www.acmicpc.net
문제분석
아스키 코드를 통해 풀 수 있는 문제이다. 알파벳 순으로 숫자를 부여하기 때문에 입력을 받아서 아스키 코드로 변환해주면 풀 수 있다. 빈 리스트에 변환된 아스키 코드 값을 for loop 문을 돌면서 집어넣으면 된다. 단, x가 y보다 큰 경우에 y에 26을 더해서 빼줘야 하므로 이 경우를 if 문을 통해 케이스를 추가해서 리스트에 집어넣도록 한다
코드
n = int(input())
for _ in range(n):
s = []
N, M = map(list, input().split())
for i in range(len(N)):
if ord(N[i]) <= ord(M[i]):
s.append(ord(M[i]) - ord(N[i]))
else:
s.append(ord(M[i]) + 26 - ord(N[i]))
print('Distances: ', end ='')
for i in s:
print(i, end=' ')
print()
문제풀이
N과 M의 크기가 같기 때문에 N의 길이만큼 for loop를 돌든 M의 길이만큼 for loop를 돌든 상관이 없다. for loop를 돌면서 if 문을 통해 x가 큰 경우와 y가 같거나 큰 경우를 나눠서 빈 리스트 s에 아스키 코드로 변형되어 계산한 값을 집어넣는다. 그 후에는 형식에 맞게 출력을 해주는데 이때, end문을 통해서 출력 형식에 맞게 출력되도록 해줘야 한다. 이때 출력을 하고 나서 다음 입력을 받는 부분에서 줄이 바뀌지 않고 입력을 받게 되는데 이를 방지 하기 위해 빈 print문을 넣어준다
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준|python] 1966번 프린터 큐 (0) | 2022.01.26 |
---|---|
[BOJ/python] 1157번 단어 공부 (0) | 2022.01.25 |
[백준/C++] 14561번 회문 (2) | 2022.01.25 |
[백준/python] 7795 먹을것인가 먹힐 것인가 (2) | 2022.01.25 |
[백준/python] 1874: 스택 수열 (0) | 2022.01.25 |
https://www.acmicpc.net/problem/5218
5218번: 알파벳 거리
첫째 줄에 테스트 케이스의 수 (< 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 두 단어가 공백으로 구분되어져 있다. 단어의 길이는 4보다 크거나 같고, 20보다 작거나 같으며, 알
www.acmicpc.net
문제분석
아스키 코드를 통해 풀 수 있는 문제이다. 알파벳 순으로 숫자를 부여하기 때문에 입력을 받아서 아스키 코드로 변환해주면 풀 수 있다. 빈 리스트에 변환된 아스키 코드 값을 for loop 문을 돌면서 집어넣으면 된다. 단, x가 y보다 큰 경우에 y에 26을 더해서 빼줘야 하므로 이 경우를 if 문을 통해 케이스를 추가해서 리스트에 집어넣도록 한다
코드
n = int(input())
for _ in range(n):
s = []
N, M = map(list, input().split())
for i in range(len(N)):
if ord(N[i]) <= ord(M[i]):
s.append(ord(M[i]) - ord(N[i]))
else:
s.append(ord(M[i]) + 26 - ord(N[i]))
print('Distances: ', end ='')
for i in s:
print(i, end=' ')
print()
문제풀이
N과 M의 크기가 같기 때문에 N의 길이만큼 for loop를 돌든 M의 길이만큼 for loop를 돌든 상관이 없다. for loop를 돌면서 if 문을 통해 x가 큰 경우와 y가 같거나 큰 경우를 나눠서 빈 리스트 s에 아스키 코드로 변형되어 계산한 값을 집어넣는다. 그 후에는 형식에 맞게 출력을 해주는데 이때, end문을 통해서 출력 형식에 맞게 출력되도록 해줘야 한다. 이때 출력을 하고 나서 다음 입력을 받는 부분에서 줄이 바뀌지 않고 입력을 받게 되는데 이를 방지 하기 위해 빈 print문을 넣어준다
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준|python] 1966번 프린터 큐 (0) | 2022.01.26 |
---|---|
[BOJ/python] 1157번 단어 공부 (0) | 2022.01.25 |
[백준/C++] 14561번 회문 (2) | 2022.01.25 |
[백준/python] 7795 먹을것인가 먹힐 것인가 (2) | 2022.01.25 |
[백준/python] 1874: 스택 수열 (0) | 2022.01.25 |