TIL / 4/25 / 백준 - 9086, 문자열
문제
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..
튜터님 피셜 대학시절 아싸셨다고 한다..
이렇게 말하는 사람 중에 진짜 아싸를 본 적이 없다.
분명 아싸를 기만하는 인싸셨을 것
가만안도..