분류 전체보기 13

for문제를 range, join, map을 활용해서 풀기

문제) 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 입력) 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 출력) 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 예제 입력 출력 5 5 4 3 2 1 저는 이 문제를 보았을 때 알고리즘 단계에 for문 안에 있어서 그대로 하면 되겠다 싶었습니다. For i in range(int(input()), 0, -1): print(i) 나름 용량 적게 먹으라고 짧게 작성했는데 더 효율적인(?) 코드를 보았습니다. n = range(int(input()),0,-1) print('\n'.join(map(str,n))) 풀어보면(임의로 a, b 정의했습니다) >>> a = int(input()) a = 5 >..

알고리즘/Python 2021.04.26

문자열 곱하기

구글 검색으로 파이썬을 배우면서 봤던 연산자가 있습니다. *인데요. 파이썬 말고도 계산기나 다른 여러 곳에서도 곱하기 기호로 쓰입니다. 파이썬에서는 다른 뜻으로 쓰일 때도 있지만, 글에서는 연산자로 살펴보겠습니다. 숫자를 곱할 때 쓰는 연산자지만 문자열(str)이나 list에도 사용 가능합니다. 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제. 첫째 줄에 N이 입력됩니다. 이렇게 쓸 수도 있지만, a = int(input()) n = '' for i in range(a): n = n + '*' print(n) a = int(input()) for i in range(a): print('*' * (i+1)) *를 이용해서 작성하면 코드 속도가 쬐끔 더 빠릅니다. # 참고 ..

알고리즘/Python 2021.04.18

eval, exec 함수

알고리즘 문제를 풀면서 다른 분들은 어떻게 코드를 썼는지 둘러보던 중에 유독 느린 코드가 있어서 들어가봤습니다. exec함수에다가 한 줄로 쓴 코드였습니다. 느려서 문제라기보단 이렇게 쓸 수도 있구나 싶었습니다. 검색하니 eval도 같이 나와서 이해한 내용만 같이 정리해봤습니다. eval 함수는 변수가 포함된 식(expression)을 문자열(string) 형태로 받아 작동합니다. a0 = 'Hello' a1 = 'World!' for i in range(2): print(eval('a' + str(i))) ------------------------------ Hello World! exec 함수는 객채(object)를 문자열 형태로 받아 작동합니다. exec('a = 1') 언급한 문제는 먼저 예시가..

알고리즘/Python 2021.04.13