Today I Learned

[TIL] 백준 15552, 프로그래머스 12935 [21-11-01]

목차

TIL

- 백준 15552

- 프로그래머스 12935

 


TIL

 오늘 자소서를 마무리하고, 검사까지 끝냈다. 노션에 정리하는 것도 오늘 마무리해서 잘 끝냈다. 내일 제출하고 남은 기간은 코딩 테스트 준비에 집중하자.

 

 

백준 15552

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

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

 빠르게 입력받아야 해서 sys.stdin.readline().strip() 으로 받아 왔습니다. strip을 해주는 이유는 \n 개행을 없애기 위함입니다. for문은 n크기만큼 돌아야 합니다. 그래야 인풋 개수만큼 받아서 출력해줍니다. (n의 크기가 test-case 이기 때문)

 각각 int함수로 묶어준 건, 값을 받아오는 것이 모두 string 형태이기 때문에 int형으로 변환해주기 위함입니다. 그래야 연산이 가능하기 때문

import sys

n = sys.stdin.readline().strip()
n = int(n)
for i in range(0, n):
    _input = sys.stdin.readline().rstrip()
    a, b = _input.split(" ")
    a = int(a)
    b = int(b)
    print(a + b)

문제 풀이 시간 10분 내외

 

 

프로그래머스 12935

https://programmers.co.kr/learn/courses/30/lessons/12935

 

코딩테스트 연습 - 제일 작은 수 제거하기

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1

programmers.co.kr

 문제 풀이하는데 너무 재미있었다. 어떻게 작은 수를 찾아서 없앨까 하다가, 작은 수를 찾아 내야 하기 때문에 강력한 내장 함수 sort를 사용하여 해결하기로 했다. tmp_arr 리스트에 넣고 직접 sort 하여 그 작은 값은 인덱스 0이게 된다. 그 값을 불러와 저장하고 그 저장된 값을 딱! 잡아서 기존 arr에서 remove 해준다.

 다른 사람들의 코드를 보니, min이라는 함수를 사용해서 바로 잡아주더라.. min함수를 다음에 써보자!

# test-case
arr = [4, 3, 2, 1]
# arr = [10]


def solution(arr):
    answer = []
    tmp_arr = []

    answer = arr
    if len(arr) == 1:
        answer = [-1]
        return answer

    for i in arr:
        tmp_arr.append(i)
    tmp_arr.sort()

    _what_you_remove = tmp_arr[0]
    answer.remove(_what_you_remove)
    return answer


print(solution(arr))

문제 풀이 시간 10분 내외