TLC - 5 ⛺/Today I Learn

TIL / 4/25 / 백준 - 9086, 문자열

Sehe_e 2023. 4. 26. 04:17

문제

 

https://www.acmicpc.net/problem/9086

문자열을 입력으로 주었을 때, 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오.

입력의 첫 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다.

 


시도

 

제일 큰 문제점은 내가 백준의 문제를 처음 접해보았다는 것이였다.

프로그래머스처럼 함수에서 매개변수에 인수로 값이 주어지고 return값을 도출해내는 것이 아닌

입력 예제

 

입력 값이 그냥 네 줄이라고 되어있어서... 처음엔

num = "3","ACDKJFOWIEGHE","O","AB"

입력이 이런 식으로 문자열 순차대로 들어가는 줄 알고 풀었다.

 

함수 없이 전부 풀고 난 뒤.. 매개변수를 대입하려고 생각을 해봤더니 인수는 총 4갠데 매개변수는 1개라서 충격을 받았다.

def solution(num):

    num_list = list(num)
    del num_list[0]

    for i in num_list:
        str_result = i[0],i[-1]
        result = ''.join(str_result)
    return result

print(solution("3","ACDKJFOWIEGHE","O","AB"))

멍 때리게 된 그 부분... 인수는 네 갠데 매개변수는 한 개다.. 이걸 계산하면서 생각을 안했다니

 

다시 인수를 1개로 받으면서 입력예제처럼 받으려면 어떻게 해야할까 생각을 하다가.. /n을 사용하자는 생각이 들었다.

def solution(num):

    num_list = num.split('\n')
    del num_list[0]

    for i in num_list:
        str_result = i[0],i[-1]
        result = ''.join(str_result)
        print(result)
        # 여기까진 괜찮습니다.. 정답이 틀립니다..
    return result

print(solution("3\nACDKJFOWIEGHE\nO\nAB"))

그런데 return값이 한 개만 나온다.. for문 안에 있는 print(result)에는 출력 예제처럼 잘 나오는데..

결국 문제를 드랍하고 팀원들과 코드리뷰를 하였다.

 


해결

 

팀원들이 푼 코드를 보니 백준 문제는 input()을 사용하면 되는 것이였다!

함수가 따로 필요없고.. 변수로 input값을 받아 활용하는 방식이였다.

코드리뷰 후 혼자 다시 input을 사용하여 풀어보았다.

i = int(input())
str_list = []

for n in range(1,i+1):
    str_list.append(str(input()))
    for a in str_list:
        result_list = a[0],a[-1]
        result = ''.join(result_list)
    print(result)

 


배운 점

 

입력 예제... 말 그대로 '입력' 예제였다..

input을 사용한다는 생각은 못했어서 나름 충격이였다..

근데 프로그래머스의 방식보다 풀기 편한 것 같기도ㅎㅎ..

앞으로 백준의 문제도 고루 풀어보아야겠다

 

 

 

 


나만의 작은 꼬북튜터님 TDMI.. To Day Much Information..

튜터님 피셜 대학시절 아싸셨다고 한다..

이렇게 말하는 사람 중에 진짜 아싸를 본 적이 없다.

분명 아싸를 기만하는 인싸셨을 것

가만안도..