ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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)


    [문제점]

    [문제점 해결]

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.