*리스트 컴프리핸션

1)1차원 리스트

a = [ i for i in range(10)]

print(a)
>>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

1-1)1차원 리스트 조건부
a=[i for i in range(20) if i%2==1]
print(a)
>>
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

2) N*M 크기의 2차원 리스트와 초기화

array=[[0]*m for _ in range(n)]

 

m=2
n=3
array=[[0]*m for _ in range(n)]

print(array)
 
>>

[[0, 0], [0, 0], [0, 0]]

 

*f-format 출력

자리는 스페이스바로 띄우고, 오른쪽 정렬

print(f'{500: >10}')

양수일 땐 +로 표시, 음수일땐 -로 표시

print(f'{500: >+10}')

print(f'{-500: >+10}')

왼쪽 정렬하고, 빈칸 _로 채움

print(f'{-500:_<10}')

3자리 마다 콤마 찍어주기

print(f'{100000:,}')

3자리 마다 콤마 찍어주기 +-붙여서

print(f'{100000:+,}')

print(f'{-100000:+,}')

3자리마다 콤마를 찍어주는 데 부호도 붙이고 자릿수도 확보 빈 자리는 ^ 채우기

print(f'{1000000:^<+30,}')

소수점 출력

print(f'{5/3:f}')

특정 자리수

print(f'{5/3:.2f}')

#나도코딩

'프로그래밍 > 파이썬' 카테고리의 다른 글

#파이썬 - 기본문법정리[4]  (0) 2022.04.04
#파이썬 - 기본문법정리[3]  (0) 2022.04.04
#파이썬 - 기본문법정리[1]  (0) 2022.04.04
#파이썬 - 기본문법정리[0]  (0) 2022.04.04
*그리디 || 큰 수의 법칙  (0) 2022.02.10

*인덱싱(Indexing)

 

a="Life is too short, You need Python"
print(a[0],a[12],a[-1],a[-5])
>>L s n y

*reverse 출력

 

a=['a','b','c','d']

print(a[::-1])
>>['d', 'c', 'b', 'a']
 
 

 

'프로그래밍 > 파이썬' 카테고리의 다른 글

#파이썬 - 기본문법정리[3]  (0) 2022.04.04
#파이썬 - 기본문법정리[2]  (0) 2022.04.04
#파이썬 - 기본문법정리[0]  (0) 2022.04.04
*그리디 || 큰 수의 법칙  (0) 2022.02.10
* 백준 || 10870 피보나치 수 5  (0) 2022.02.09

진짜 오랜간만에 다시 쓰는 블로그. 

교환학생에서 실컷 놀다 왔으니 본격적으로 공부하기 전에 다시 되새겨보는 기본 문법정리

 

1) Concatenation(더하기)

 

head ="python"

tail = "is fun"

print(head + tail)

>>Python is fun

 

1-1) 문자열 * 숫자

a = "Python"

print(a*2)

>>PythonPython

 

 

 

 

 

 

'프로그래밍 > 파이썬' 카테고리의 다른 글

#파이썬 - 기본문법정리[2]  (0) 2022.04.04
#파이썬 - 기본문법정리[1]  (0) 2022.04.04
*그리디 || 큰 수의 법칙  (0) 2022.02.10
* 백준 || 10870 피보나치 수 5  (0) 2022.02.09
*코드업 || 6104  (0) 2022.02.09

다양한 수로 이루어진 배열을 M번 더하여 가장 큰 수를 만든다.

단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없다.

서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다.

N은 배열의 크기, M은 숫자가 더해지는 횟수, K는 연속해서 더할 수 있는 횟수.

 

  • [2, 4, 5, 4, 6] 배열, M = 8, K = 3은 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46 이다.
  • [3, 4, 3, 4, 3] 배열, M = 7, K = 2은 4 + 4 + 4 + 4 + 4 + 4 + 4 = 28

입력 조건

  • 첫번째 줄에 N (2 <= N <= 1000), M (1 <= M <= 10000), K (1 <= K <= 10000)의 자연수가 주어지며, 각 자연수는 공백으로 구분한다.
  • 둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분하며 1 이상 10000 이하의 수로 주어진다.
  • 입력으로 주어지는 K는 항상 M보다 작거나 같다.

 


2 4 3 5 6

M = 8 K = 3

일 경우

 

6 6 6 5

+

6 6 6 5

 

가 최선이다.

즉 일정한 규칙을 갖고 반복되는 점을 인지해야 한다.

 


N ,M ,K = list(map(int,input().split()))
data = list(map(int,input().split()))
data.sort(reverse=True)
count = (M//(K+1)) * K
count += M % (K+1)

MAX = count * data[0]
MAX += (M - count) * data[1]

print(MAX)

'프로그래밍 > 파이썬' 카테고리의 다른 글

#파이썬 - 기본문법정리[1]  (0) 2022.04.04
#파이썬 - 기본문법정리[0]  (0) 2022.04.04
* 백준 || 10870 피보나치 수 5  (0) 2022.02.09
*코드업 || 6104  (0) 2022.02.09
*코드업 || 6103  (0) 2022.02.09

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.

n=17일때 까지 피보나치 수를 써보면 다음과 같다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.

 

예제 입력 1 

55

예제 출력 1 

10

1. 

def fivo(n):
    if n==0:
        return 0
    elif n==1 or n==2:
        return 1
    else:
        return fivo(n-1)+fivo(n-2)

a = int(input())

print(fivo(a))

 

2. 

a,b=0,1
for i in range(int(input())):
    a,b=b,a+b
   
print(a)

'프로그래밍 > 파이썬' 카테고리의 다른 글

#파이썬 - 기본문법정리[0]  (0) 2022.04.04
*그리디 || 큰 수의 법칙  (0) 2022.02.10
*코드업 || 6104  (0) 2022.02.09
*코드업 || 6103  (0) 2022.02.09
*코드업 || 6102  (0) 2022.02.09

+ Recent posts