11654번 아스키 코드
word = input()
print(ord(word))
아스크 코드로 변환
ord()
문자를 아스키코드로 변환 ord(a)
=> 97
chr()
숫자를 아스키코드로 변환 chr(65)
=> A
input
으로 입력 받는 값은 문자열이다.
문자열을 아스키 코드로 바꾸는 방법 ord(해당문자)
11720번 숫자의 합
방법1
count = int(input())
numbers = input()
result = []
for i in range(count):
result.append(numbers[i])
a = [int(i) for i in result]
print(sum(a))
방법2
count = int(input())
while True:
numbers = input()
if numbers.index(numbers[-1]) == count-1 :
result = []
sum = 0
for number in numbers:
sum = sum + int(number)
print(sum)
break
else:
pass
방법2는 방법1에 대한 방어코드를 추가한 것으로 방법1의 경우 처음 입력하는 숫자가 3인 경우 두번째 입력하는 문자가 3이상이 되도 문제가 없다.
그래서 numbers.index(numbers[-1]) == count-1
코드를 추가해 주었다.
의미는 두번째로 입력받은 문자열의 마지막요소의 인덱스가 입력받은 수의 총 길이를 의미하는 count에서 인덱스 이므로 -1해준값과 같다는 조건이 참이 되면 그 뒤로 수행하게 했다.
10809번 알파벳 찾기
방법1
text = input()
for i in list(map(chr,(range(97,123)))):
print(text.find(i))
방법2
text = input()
for i in list(map(chr,(range(97,123)))):
if i in text:
print(text.index(i), end=" ")
else:
print(-1, end=" ")
방법1
find()
함수를 이용하면 존재하지 않으면 -1을 반환한다.
그 점을 이용해서 하나씩 돌면서 있는지 없는지 확인 하는 코드를 구현
방법2
a의 아스키코드는 97 z는 123이다. 이를 이용해서 range객체
와 map
을 이용해서 a-z까지의 리스트를 만들고, 사용자로부터 입력받은 text가 a-z까지의 안에 있으면 문자열.index
로 인덱스 값을 반환 받았고, 아니면 -1을 출력하는 식으로 했다.
2675번 문자열 반복
cases = int(input())
for case in range(cases):
a = input().split()
#a[0] 반복획수
#a[1] 반복문자열
temp = []
for i in range(len(a[1])):
temp.append(a[1][i]*int(a[0]))
temp = "".join(temp)
print(temp)
join
함수를 이용해서 반복횟수만큼 각자리를 반복한 문자열의 리스트를 합쳤다.
1157번 단어 공부
texts = input() #사용자로부터 입력받는다
texts = texts.upper() #대문자로 모두 바꾸어 준다.
lst = list(set(texts)) #중복을 제거 하기 위해서 set으로 변경 후 다시 리스트로 만든다.
lst.sort() #문자들을 정렬해준다.
word_list = []
temp = 0 #최대값을 0으로 설정해준다.
for word in lst: #중복이 없으므로 문자 하나씩 돌며 문장안에 있는 갯수를 cnt변수에 받는다.
cnt = texts.count(word)
if temp == cnt: #만약 cnt값과 미리 설정한 temp값이 같다면 문제대로 ?를 출력한다.
word_list.append("?")
if cnt> temp: #cnt가 temp보다 크다면 미리만들어둔 word_list에 문자를 추가한다.
temp = cnt
word_list.append(word)
print(word_list[-1]) #모든 문자를 돌기 때문에 맨 마지막에 들어온 문자가 cnt가 가장 큰 문자가 된다.
#그러므로 마지막 문자를 출력해 주면 , 문제의 답을 충족시킬수 있다.
1152번 단어의 개수
texts = input().split()
print(len(texts))
split()
와 split(" ")
은 다르다.
split()
공백을 포함하지 않는다.
split(" ")
띄어쓰기를 여러번 하면, 공백문자로 본다.
2908번 상수
방법1
number = input().split() #사용자로 부터 두개의 숫자를 입력받는다.
#사용자로 부터 입력받는 값은 str이 기본이다.
def reverse_number(number): #함수정의 문자형태의 숫자를 받으며 거꾸로 바꾸어준다.
result = []
for i in range(len(number)):
result.append(number[len(number)-i-1]) #뒤에서 부터 추가해준다.
result = "".join(result) #join으로 리스트 내의 요소들을 합친다.
return result
num1 = reverse_number(number[0])
num2 = reverse_number(number[1])
if int(num1)>int(num2):
print(num1)
else:
print(num2)
방법2
A,B = input().split(' ')
A = [n for n in A]
B = [n for n in B]
A.reverse()
B.reverse()
a = int(''.join(A))
b = int(''.join(B))
print(max(a,b))
reverse()
함수가 있다. 리스트 내의 요소들을 반대로 바꾸어 준다.
5622번 다이얼
words = list(input())
count = 0
for word in words:
if word in ["A","B","C"]:
count += 3
elif word in ["D","E","F"]:
count += 4
elif word in ["G","H","I"]:
count += 5
elif word in ["J","K","L"]:
count += 6
elif word in ["M","N","O"]:
count += 7
elif word in ["P","Q","R","S"]:
count += 8
elif word in ["T","U","V"]:
count += 9
elif word in ["W","X","Y","Z"]:
count += 10
print(count)
words = list(input())
print(words)
asdsad 입력시
['a', 's', 'd', 's', 'a', 'd']
2941번 크로아티아 알파벳
texts = input()
lit = ["c=","c-","dz=","d-","lj","nj","s=","z="]
for i in range(len(lit)):
if lit[i] in texts:
texts= texts.replace(lit[i],"*")
texts = texts.replace(",","")
print(len(texts))
1316번 그룹 단어 체커
def find_index(texts, word): #
idx_list =[]
for _ in range(len(texts)):
idx = texts.find(word)
texts = texts.replace(word,"",1)
if idx>=0:
idx_list.append(idx)
return idx_list
number = int(input()) # 사용자로 부터 입력 받음
total_count=0 # 입력 받은 문자 중 그룹단어 수
for i in range(number): # 처음 입력 받은 수 만큼 반복
texts = input()
set_texts = list(set(texts)) # 입력 받은 단어의 중복 제거를 위해서 set으로 만들고 다시 list로 변환
count = 0
for i in range(len(set_texts)): # 중복아 제거된 단어의 문자열리스트의 수 만큼 반복
idx_list = find_index(texts, set_texts[i]) # find_index()를 이용해서 set_texts의 요소들을 하나씩 인자로 주고
# idx_list를 반환받는다.
if len(set(idx_list)) == 1: # idx_list를 set()으로 변환해서 중복을 제거 그리고 중복을 제거한 길이가 1이면 count에 추가
count = count + 1
if count == len(set_texts): # count와 set_text의 길이가 같다면 total_count를 추가
total_count = total_count +1
print(total_count)