본문 바로가기

과제

[BAEKJOON] 문자열 - python

1. 11654번

 

text = ord(input())
print(text)

# ord(문자) 아스키 코드 반환
# chr(숫자) 아스키 코드 반환

 

2. 11720번

 

N = int(input())
numbers = list(map(int, input())) # 입력값을 정수로 변환 후 리스트로 만들어줌
print(sum(numbers)) # 리스트 요소를 모두 더함 sum()

 

3. 10809번

 

s = list(input()) # 단어를 1글자씩 쪼개서 리스트로 만들기
alphabet = 'abcdefghijklmnopqrstuvwxyz'
result = [] # 최종 출력할 결과물

for i in alphabet: # 알파벳 하나하나 돌면서
    if i in s: # 알파벳 요소(i)가 단어 리스트(s)에 포함된다면
        result.append(s.index(i)) # 결과 리스트에 추가한다. 알파벳 요소(i)가 단어 리스트(s)의 몇번째 인덱스인지
    else: # 포함되지 않는다면
        result.append(-1) # -1을 추가한다.
print(*result) # unpacking(인자를 해체함)

 

4. 2675번

 

t_case = int(input())           # 테스트 케이스 갯수 입력
for i in range(t_case):         # 테스트 케이스 입력값 만큼 반복하면서
    r, s = input().split()      # 공백으로 구분된 입력값을 공백을 기준으로 나눔, 각 변수에 담음
    r = int(r)                  # 반복횟수는 정수로 변환
    result = [x*r for x in s]   # 단어(s)를 돌면서 요소(x)에 r을 곱한 값을 변수(result)에 담음
    print("".join(result))      # join을 사용해 리스트를 문자열로 반환, 구분자를 ""으로 지정해 여백없는 형태로 출력

 

5. 1157번

- .upper 함수 : 알파벳 소문자 → 대문자로 반환

- .lower 함수 : 알파벳 대문자 → 소문자로 반환

- .isupper 함수 : 사용된 모든 알파벳이 대문자일 때 True 반환

- .islower 함수 : 사용된 모든 알파벳이 소문자일 때 True 반환

 

word = list(input().upper())     # 알파벳을 대문자로 반환 후 리스트로 저장
used_alphabet = list(set(word))  # set으로 중복 제거해 사용된 알파벳을 구함, 추후 count함수 사용을 위해 리스트로 반환

used_count = []                  # 사용된 알파벳의 사용횟수 리스트
for i in used_alphabet:          # 사용된 알파벳을 하나씩 돌면서
    used = word.count(i)         # 알파벳(i)이 word 리스트에서 몇개인지 구함 (사용횟수)
    used_count.append(used)      # 사용횟수들을 리스트로 저장

if used_count.count(max(used_count)) >= 2: # 사용횟수 리스트의 최댓값이 해당 리스트에서 2개 이상이면
    print('?')
else:
    n = used_count.index(max(used_count)) # 사용횟수 최댓값의 인덱스를 구함 (사용횟수, 알파벳 두 리스트는 순서 동일)
    print(used_alphabet[n])               # 알파벳 리스트에 위의 인덱스 값을 적용시켜 최댓값에 해당하는 알파벳을 출력

 

6. 1152번

- len() 함수 : 원소 갯수를 구함

 

sentence = input().split()   # 공백을 기준으로 입력값을 나눔
print(len(sentence))         # 길이로 단어 갯수를 구함