문제
문제
알파벳 대문자로 구성되어있는 문자열 S가 주어졌을 때, S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 구하는 프로그램을 작성하시오.
문자열 S가 “ABCDEFGHIJKLMNOPQRSTUVW” 일 때, S에 등장하지 않는 알파벳 대문자는 X, Y, Z이다. X의 아스키 코드 값은 88, Y는 89, Z는 90이므로 이 아스키 코드 값의 합은 267이다.
알파벳 대문자의 아스키 코드 값은 다음과 같다.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 |
입력
입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 대문자로만 구성되어 있고, 최대 1000글자이다.
출력
각 테스트 데이터에 대해, 입력으로 주어진 문자열 S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 한 줄에 하나씩 출력한다.
예제 입력 1 복사
2
ABCDEFGHIJKLMNOPQRSTUVW
A
예제 출력 1 복사
267
1950
https://www.acmicpc.net/problem/3059
Algorithm
1.테스트 케이스를 입력받아 반복문의 횟수를 결정한다.
2.등장하지 않은 알파벳을 더하는 과정을 반대로 생각하여 모든 알파벳의 아스키코드를 더한값에 알파벳이 등장할 때 마다 빼주는 과정을 이용한다. 모든 알파벳의 아스키코드값을 더한값은 2015이며 이를 total변수에 저장시킨다.
3.각 문자열의 문자가 어떤 알파벳인지 확인하기 위하여 반복문 두개를 사용하여 A에서부터 아스키코드를 하나씩 증가시키며 어떤 알파벳인지 확인한다.
4.어떤 알파벳인지 확인이 되면 그 값을 total변수에서 빼는 과정을 반복하여 total변수가 등장하지 않은 값들의 합이 되도록 한다.
Code
case=int(input())
for i in range(case):
ascii=65
total=2015
char=input()
for j in range(26):
for k in range(len(char)):
if ord(char[k])==ascii:
total-=ascii
break
ascii+=1
print(total)
'Koala - 18기 > 코딩테스트 기초 스터디' 카테고리의 다른 글
[백준/Python] 5218 : 알파벳 거리 (0) | 2025.04.05 |
---|---|
[백준/Python] 10808 : 알파벳 개수 (0) | 2025.03.30 |
[백준 / Python] 10867 : 중복 빼고 정렬하기 (0) | 2025.03.30 |
[백준/Python] 20540 : 연길이의 이상형 (0) | 2025.03.23 |
[백준/Python] 2839번 : 설탕 배달 (0) | 2025.03.23 |
문제
문제
알파벳 대문자로 구성되어있는 문자열 S가 주어졌을 때, S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 구하는 프로그램을 작성하시오.
문자열 S가 “ABCDEFGHIJKLMNOPQRSTUVW” 일 때, S에 등장하지 않는 알파벳 대문자는 X, Y, Z이다. X의 아스키 코드 값은 88, Y는 89, Z는 90이므로 이 아스키 코드 값의 합은 267이다.
알파벳 대문자의 아스키 코드 값은 다음과 같다.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 |
입력
입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 대문자로만 구성되어 있고, 최대 1000글자이다.
출력
각 테스트 데이터에 대해, 입력으로 주어진 문자열 S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 한 줄에 하나씩 출력한다.
예제 입력 1 복사
2
ABCDEFGHIJKLMNOPQRSTUVW
A
예제 출력 1 복사
267
1950
https://www.acmicpc.net/problem/3059
Algorithm
1.테스트 케이스를 입력받아 반복문의 횟수를 결정한다.
2.등장하지 않은 알파벳을 더하는 과정을 반대로 생각하여 모든 알파벳의 아스키코드를 더한값에 알파벳이 등장할 때 마다 빼주는 과정을 이용한다. 모든 알파벳의 아스키코드값을 더한값은 2015이며 이를 total변수에 저장시킨다.
3.각 문자열의 문자가 어떤 알파벳인지 확인하기 위하여 반복문 두개를 사용하여 A에서부터 아스키코드를 하나씩 증가시키며 어떤 알파벳인지 확인한다.
4.어떤 알파벳인지 확인이 되면 그 값을 total변수에서 빼는 과정을 반복하여 total변수가 등장하지 않은 값들의 합이 되도록 한다.
Code
case=int(input())
for i in range(case):
ascii=65
total=2015
char=input()
for j in range(26):
for k in range(len(char)):
if ord(char[k])==ascii:
total-=ascii
break
ascii+=1
print(total)
'Koala - 18기 > 코딩테스트 기초 스터디' 카테고리의 다른 글
[백준/Python] 5218 : 알파벳 거리 (0) | 2025.04.05 |
---|---|
[백준/Python] 10808 : 알파벳 개수 (0) | 2025.03.30 |
[백준 / Python] 10867 : 중복 빼고 정렬하기 (0) | 2025.03.30 |
[백준/Python] 20540 : 연길이의 이상형 (0) | 2025.03.23 |
[백준/Python] 2839번 : 설탕 배달 (0) | 2025.03.23 |