Lambda 함수란 ? def로 함수를 정의하지 않고 lambda 표현식으로 익명 함수를 만들어 사용하는 방법 lambda 표현식은 식 형태로 되어 있다고 해서 람다 표현식(lambda expression)이라고 부른다. 특히 lambda 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다. Lambda 함수와 map() map(함수, 리스트 or 튜플) 첫번째 인자인 함수는 두번째 인자로 들어온 리스트나 튜플에 특별한 가공 처리를 하는 함수이며, 사용자가 직접 함수를 정의해서 넣는다. 두번째 인자인 리스트나 튜플은 바꾸고자 하는 데이터들을 집어 넣는다. def plus_one(x): return x + 1 print(plus_one(1)) plus_two = lambd..
다시 한번 정리해보는 Python 입력 처리 input() 대신 sys.stdin.readline()으로 입력 받기 import sys T = int(input()) for i in range(T): a, b = map(int, sys.stdin.readline().split()) print(a+b) 한 개의 정수를 입력 받기 import sys n = int(sys.stdin.readline()) print(n) 정해진 개수의 정수를 한줄에 입력받기 import sys a, b, c = map(int, sys.stdin.readline().split()) # map()을 이용해 a, b ,c 각각을 int형으로 형변환 print(a, b, c) 임의의 개수의 정수를 한줄에 입력받아 리스트에 저장하기 i..
정수 X가 주어질 때 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지이다. a. X가 5로 나누어떨어지면, 5로 나눈다. b. X가 3으로 나누어떨어지면, 3으로 나눈다. c. X가 2로 나누어떨어지면, 2로 나눈다. d. X에서 1을 뺀다. 정수 X가 주어졌을 때, 연산 4개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 예를 들어 정수가 26이면 다음과 같이 계산해서 3번의 연산이 최솟값이다. 1. 26 - 1 = 25 (4) 2. 25 / 5 = 5 (1) 3. 5 / 5 = 1 (1) 입력 조건 첫째 줄에 정수 X가 주어진다. (1 26 -> 25 -> 5 -> 1 28 -> 14 -> 7 -> 6 -> 2 -> 1 두가지 방법은 연산의 횟수가 같다. 즉..
꽤 오랜 시간을 고민했는데 이해가 되지 않았던 문제이다 ... 기억하기 위해 기록함 ! ⭐️ 문제에서 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 했다. 즉 답은 1, 2, 3, 4 네개 중 하나이다. ⭐️ 자연수가 1개의 제곱수로 표현될 수 있는 조건에 대해 먼저 확인한 후 2, 3, 4 조건을 순서대로 확인해준다. 조건 개수 n의 제곱근이 정수일 때 1 정수 i에 대해 n - (i^2)의 제곱근이 정수인 경우 2 정수 i, j에 대해 n - (i^2) - (j^2)의 제곱근이 정수인 경우 3 위의 어떠한 조건에도 해당하지 않는 경우 4 def sol(n): if int(n ** 0.5) == n ** 0.5: return 1 for i in range(1, int(n ** 0...
⭐️ 반복되는 사각형의 좌표값의 규칙을 찾아낸다. ⭐️ 재귀함수를 이용하면 코드가 깔끔해진다. n = 3을 기준으로 규칙을 찾아보자 최외각 사각형의 가장 왼쪽 별의 좌표값은 (0, 0)이고 그 안의 두번째 사각형의 좌표값은 (2, 2) 세번째 별 하나의 좌표값은 (4, 4)인것을 알 수 있다. 사각형 모양대로 별을 찍을 때는 사각형의 내부에는 별이 찍혀있지 않으므로 위, 아래, 좌, 우에만 별이 찍히도록 한다. l = 4 * n - 3 for i in range(idx, l + idx): # 위 아래 starMap[idx][i] = '*' starMap[idx + l - 1][i] = '*' # 양 옆 starMap[i][idx] = '*' starMap[i][idx + l - 1] = '*' 별을 찍는..
⭐ 거슬러줘야 할 돈이 1원이나 3원일 때는 절대 거슬러 줄 수 없는 경우를 생각해야한다. ⭐ 문제에서 주어진 13원, 14원을 거슬러주는 상황에서 힌트를 얻자 11원 5원 1개 + 2원 3개 12원 5원 2개 + 2원 2개 13원 5원 1개 + 2원 4개 14원 5원 2개 + 2원 4개 15원 5원 3개 11원, 13원의 경우 5원짜리 2개로 먼저 거슬러 줄 경우 1원, 3원이 남아 2원으로는 해결할 수 없다. 따라서 5원짜리를 1개만 쓰고 나머지 6원, 8원을 2원 짜리로 해결해야 한다. 위의 상황이 5원이 늘어날 때 마다 반복되므로 전체적으로 생각해야하는 경우의 수는 5개가 반복된다. money = int(input()) money_5 = 0 money_2 = 0 count = 0 n = money..