-
[Python] 백준 : 문자열카테고리 없음 2024. 4. 9. 11:02
# 27,866 : 문자와 문자열
[문제 풀기 전 생각한 부분]
[my_code]
# 사용자로부터 변수를 입력 받기 S = input() # 정수 입력 받기 i = int(input()) # i번 째 글자 출력하기 print(S[i-1]) # Sprout 라고 사용자로부터 변수를 입력 받았다고 가정해보자 # S[0] = S # S[1] = p # S[2] = r # 띠리사 우리가 구하고자 하는 -1을 해주어야 값을 구할 수 있다.
[문제점]
[문제점 해결]# 2,743: 단어 길이 재기
[문제 풀기 전 생각한 부분]
[my_code]# 사용자로부터 입력받기 / 여기선 이해하기 쉽게 string을 사용. a= input() 가능 하지만 알아듭기 쉽게 string = input() # 길이는 len(변수) 하면 됩니다. print(len(string))
[문제점]
[문제점 해결]# 9,086 : 문자열
[문제 풀기 전 생각한 부분]
1. 결국 맨 처음과 맨 마지막만 표현
[my_code]# 사용자로부터 테스트 케이스 받고 T = int(input()) # 사용자로부터 문자열을 받는다. # stinrg = input() # 위와 같이 하면 테스트 케이스 대로 못 받고 1번만 받겠죠? 그러면 어떻게 해야될까요? # for문을 이용해서 테스트 케이스 만큼 받아줍니다. for i in range(T): string = input() first_char = string[0] # 첫번째 last_char = string[-1] # 마지막 print(first_char + last_char) # 연속으로 첫번째 마지막
[문제점]
[문제점 해결]# 11,654 : 아스키 코드
[문제 풀기 전 생각한 부분]
1. 하나하나 key와 value로 연결해줄 수 없고 내장함수가 분명히 있을 것이다. 하지만 모르니깐 그냥 찾아보자.
[my_code]
# 입력 받기 character = input() # 아스키 코드값 출력 print(ord(character))
[문제점]
1. 내장 함수를 몰랐다.
[문제점 해결]1. ord() 라는 내장 함수를 사용하면 된다.
ord() 함수는 주어진 문자의 아스키 코드값을 반환하는 파이썬의 내장 함수입니다. 이 함수는 문자열에서 사용할 수 있으며, 주어진 문자의 아스키 코드값을 정수로 반환합니다.
# 11,720 : 숫자의 합 ~ 문자열 반복까지는 저장을 깜빡했습니다. 궁금하시면 댓글 주세요.
# 1,152 : 단어의 개수
[문제 풀기 전 생각한 부분]
1. 입력을 받고 공백을 기준으로 단어를 카운트 한다.
[my_code]
# 사용자로부터 공백을 기준으로 입력을 받는다. word = input().split() # 입력 받은 단어의 개수를 센다. print(len(word))
[문제점]
1. 너무 오랜만에 알고리즘 문제를 풀었더니, 까먹었다.
[문제점 해결]
1. 다시 한번 훑어 본다.
# 2,908 : 상수
[문제 풀기 전 생각한 부분]
1. 사용자로부터 숫자를 입력받고. 숫자를 거꾸로 뒤집고 두 수를 비교한다.
[my_code]
# 사용자로부터 공백을 기준으로 두 수를 입력받고. a,b = int(input().split()) a = a[::-1] # 거꾸로 뒤집기 b = b[::-1] # 거꾸로 뒤집기 if a>b: print(a) else: print(b)
[문제점]
1. 뒤집는 방법을 모름.
2. int 변환 오류
[문제점 해결]
a, b = input().split() # 사용자로부터 두 개의 문자열을 입력받고, 공백을 기준으로 분리하여 각각 a와 b에 할당합니다. a = a[::-1] # 문자열을 거꾸로 뒤집습니다. b = b[::-1] # 문자열을 거꾸로 뒤집습니다. if a > b: # 두 문자열을 비교하여 더 큰 값을 출력합니다. print(a) else: print(b)
1. [::-1] 을 이용해서 거꾸로 뒤집어 주자.
2.코드에서 a, b = int(input().split())라는 부분에서 오류가 발생합니다. 이 부분은 사용자로부터 입력된 문자열을 공백을 기준으로 분리한 후, 그 값을 정수로 변환하여 a와 b에 각각 할당하는 부분입니다. 그러나 input().split()이 반환하는 값은 리스트이므로, 이를 한 번에 int() 함수에 전달하는 것은 오류를 발생시킵니다.
먼저 input() 함수를 사용하여 입력을 받은 후, 그 입력 문자열을 split() 메서드를 사용하여 공백을 기준으로 분리합니다. 그 후 각각의 값을 int() 함수를 사용하여 정수로 변환하여 a와 b에 할당해야 합니다.
# 5,622 : 다이얼
[문제 풀기 전 생각한 부분]
1. 러프하게 가자 하나씩 대입해서 풀자
[my_code]# 사용자로부터 문자열을 입력받습니다. S = input() # 문자열을 입력하는 데 걸리는 총 시간을 저장할 변수를 초기화합니다. time = 0 # 입력된 문자열의 각 문자에 대해 반복합니다. for s in S: # 현재 문자가 어떤 버튼에 속하는지 확인하고, 그에 따라 시간을 더합니다. if s in "ABC": time += 3 elif s in "DEF": time += 4 elif s in "GHI": time += 5 elif s in "JKL": time += 6 elif s in "MNO": time += 7 elif s in "PQRS": time += 8 elif s in "TUV": time += 9 elif s in "WXYZ": time += 10 else: # 만약 버튼에 속하지 않는 문자라면, 시간을 11로 처리합니다. time += 11 # 총 시간을 출력합니다. print(time)
[문제점][문제점 해결]