문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

예제 입력 1

1
1

예제 출력 1

1

예제 입력 2

5
54321

예제 출력 2

15

예제 입력 3

25
7000000000000000000000000

예제 출력 3

7

예제 입력 4

11
10987654321

예제 출력 4

46

 

내가 푼 답

def sumNum():
    cnt = int(input())
    N = list(map(int,list(input())))
    return sum(N)

def main():
    print(sumNum())

if __name__ == '__main__':
    main()

----------------------------------

처음에 for 문 돌릴까 했지만

예전에 sum() 이걸 생각해서 그냥 인트배열로 만들어서 sum() 해봤음

'알고리즘' 카테고리의 다른 글

[BOJ-4673] 셀프 넘버  (0) 2020.06.16
[BOJ-2748] 피보나치 수 2  (0) 2020.06.15
[BOJ-2609]최대공약수와 최소공배수  (0) 2020.06.11
[BOJ-2755]숫자의 개수  (0) 2020.06.10
[111726번] 2 x n 타일링  (0) 2017.12.12

문제

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.

양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 

예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다.

33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...

n을 d(n)의 생성자라고 한다. 위의 수열에서 33은 39의 생성자이고, 39는 51의 생성자, 51은 57의 생성자이다. 생성자가 한 개보다 많은 경우도 있다. 예를 들어, 101은 생성자가 2개(91과 100) 있다. 

생성자가 없는 숫자를 셀프 넘버라고 한다. 100보다 작은 셀프 넘버는 총 13개가 있다. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97

10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

입력

입력은 없다.

출력

10,000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 증가하는 순서로 출력한다.

예제 입력 1

예제 출력 1

1
3
5
7
9
20
31
42
53
64
 |
 |       <-- a lot more numbers
 |
9903
9914
9925
9927
9938
9949
9960
9971
9982
9993
W3sicHJvYmxlbV9pZCI6IjQ2NzMiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMxNDBcdWQ1MDQgXHViMTE4XHViYzg0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWMxNDBcdWQ1MDQgXHViMTE4XHViYzg0XHViMjk0IDE5NDlcdWIxNDQgXHVjNzc4XHViM2M0IFx1YzIxOFx1ZDU1OVx1Yzc5MCBELlIuIEthcHJla2FyXHVhYzAwIFx1Yzc3NFx1Yjk4NCBcdWJkOTlcdWM2MDBcdWIyZTQuIFx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMTggblx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMgZChuKVx1Yzc0NCBuXHVhY2ZjIG5cdWM3NTggXHVhYzAxIFx1Yzc5MFx1YjlhY1x1YzIxOFx1Yjk3YyBcdWIzNTRcdWQ1NThcdWIyOTQgXHVkNTY4XHVjMjE4XHViNzdjXHVhY2UwIFx1YzgxNVx1Yzc1OFx1ZDU1OFx1Yzc5MC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgZCg3NSkgPSA3NSs3KzUgPSA4N1x1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBuXHVjNzc0IFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1Yzc3NCBcdWMyMThcdWI5N2MgXHVjMmRjXHVjNzkxXHVkNTc0XHVjMTFjIG4sIGQobiksIGQoZChuKSksIGQoZChkKG4pKSksIC4uLlx1YWNmYyBcdWFjMTlcdWM3NDAgXHViYjM0XHVkNTVjIFx1YzIxOFx1YzVmNFx1Yzc0NCBcdWI5Y2NcdWI0ZTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCwgMzNcdWM3M2NcdWI4NWMgXHVjMmRjXHVjNzkxXHVkNTVjXHViMmU0XHViYTc0IFx1YjJlNFx1Yzc0YyBcdWMyMThcdWIyOTQgMzMgKyAzICsgMyA9IDM5XHVjNzc0XHVhY2UwLCBcdWFkZjggXHViMmU0XHVjNzRjIFx1YzIxOFx1YjI5NCAzOSArIDMgKyA5ID0gNTEsIFx1YjJlNFx1Yzc0YyBcdWMyMThcdWIyOTQgNTEgKyA1ICsgMSA9IDU3XHVjNzc0XHViMmU0LiBcdWM3NzRcdWI3ZjBcdWMyZGRcdWM3M2NcdWI4NWMgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWMyMThcdWM1ZjRcdWM3NDQgXHViOWNjXHViNGU0IFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjMzLCAzOSwgNTEsIDU3LCA2OSwgODQsIDk2LCAxMTEsIDExNCwgMTIwLCAxMjMsIDEyOSwgMTQxLCAuLi48XC9wPlxyXG5cclxuPHA+blx1Yzc0NCBkKG4pXHVjNzU4IFx1YzBkZFx1YzEzMVx1Yzc5MFx1Yjc3Y1x1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1YzcwNFx1Yzc1OCBcdWMyMThcdWM1ZjRcdWM1ZDBcdWMxMWMgMzNcdWM3NDAgMzlcdWM3NTggXHVjMGRkXHVjMTMxXHVjNzkwXHVjNzc0XHVhY2UwLCAzOVx1YjI5NCA1MVx1Yzc1OCBcdWMwZGRcdWMxMzFcdWM3OTAsIDUxXHVjNzQwIDU3XHVjNzU4IFx1YzBkZFx1YzEzMVx1Yzc5MFx1Yzc3NFx1YjJlNC4gXHVjMGRkXHVjMTMxXHVjNzkwXHVhYzAwIFx1ZDU1YyBcdWFjMWNcdWJjZjRcdWIyZTQgXHViOWNlXHVjNzQwIFx1YWNiZFx1YzZiMFx1YjNjNCBcdWM3ODhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIDEwMVx1Yzc0MCBcdWMwZGRcdWMxMzFcdWM3OTBcdWFjMDAgMlx1YWMxYyg5MVx1YWNmYyAxMDApIFx1Yzc4OFx1YjJlNC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+XHVjMGRkXHVjMTMxXHVjNzkwXHVhYzAwIFx1YzVjNlx1YjI5NCBcdWMyMmJcdWM3OTBcdWI5N2MgXHVjMTQwXHVkNTA0IFx1YjExOFx1YmM4NFx1Yjc3Y1x1YWNlMCBcdWQ1NWNcdWIyZTQuIDEwMFx1YmNmNFx1YjJlNCBcdWM3OTFcdWM3NDAgXHVjMTQwXHVkNTA0IFx1YjExOFx1YmM4NFx1YjI5NCBcdWNkMWQgMTNcdWFjMWNcdWFjMDAgXHVjNzg4XHViMmU0LiAxLCAzLCA1LCA3LCA5LCAyMCwgMzEsIDQyLCA1MywgNjQsIDc1LCA4NiwgOTc8XC9wPlxyXG5cclxuPHA+MTAwMDBcdWJjZjRcdWIyZTQgXHVjNzkxXHVhYzcwXHViMDk4IFx1YWMxOVx1Yzc0MCBcdWMxNDBcdWQ1MDQgXHViMTE4XHViYzg0XHViOTdjIFx1ZDU1YyBcdWM5MDRcdWM1ZDAgXHVkNTU4XHViMDk4XHVjNTI5IFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzQwIFx1YzVjNlx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD4xMCwwMDBcdWJjZjRcdWIyZTQgXHVjNzkxXHVhYzcwXHViMDk4IFx1YWMxOVx1Yzc0MCBcdWMxNDBcdWQ1MDQgXHViMTE4XHViYzg0XHViOTdjIFx1ZDU1YyBcdWM5MDRcdWM1ZDAgXHVkNTU4XHViMDk4XHVjNTI5IFx1Yzk5ZFx1YWMwMFx1ZDU1OFx1YjI5NCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjQ2NzMiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTZWxmIE51bWJlcnMiLCJkZXNjcmlwdGlvbiI6IjxwPkluIDE5NDkgdGhlIEluZGlhbiBtYXRoZW1hdGljaWFuIEQuUi4gS2FwcmVrYXIgZGlzY292ZXJlZCBhIGNsYXNzIG9mIG51bWJlcnMgY2FsbGVkIHNlbGYtbnVtYmVycy4gRm9yIGFueSBwb3NpdGl2ZSBpbnRlZ2VyIG4sIGRlZmluZSBkKG4pIHRvIGJlIG4gcGx1cyB0aGUgc3VtIG9mIHRoZSBkaWdpdHMgb2Ygbi4gKFRoZSBkIHN0YW5kcyBmb3IgZGlnaXRhZGl0aW9uLCBhIHRlcm0gY29pbmVkIGJ5IEthcHJla2FyLikgRm9yIGV4YW1wbGUsIGQoNzUpID0gNzUgKyA3ICsgNSA9IDg3LiBHaXZlbiBhbnkgcG9zaXRpdmUgaW50ZWdlciBuIGFzIGEgc3RhcnRpbmcgcG9pbnQsIHlvdSBjYW4gY29uc3RydWN0IHRoZSBpbmZpbml0ZSBpbmNyZWFzaW5nIHNlcXVlbmNlIG9mIGludGVnZXJzIG4sIGQobiksIGQoZChuKSksIGQoZChkKG4pKSksIC4uLi4gRm9yIGV4YW1wbGUsIGlmIHlvdSBzdGFydCB3aXRoIDMzLCB0aGUgbmV4dCBudW1iZXIgaXMgMzMgKyAzICsgMyA9IDM5LCB0aGUgbmV4dCBpcyAzOSArIDMgKyA5ID0gNTEsIHRoZSBuZXh0IGlzIDUxICsgNSArIDEgPSA1NywgYW5kIHNvIHlvdSBnZW5lcmF0ZSB0aGUgc2VxdWVuY2U8XC9wPlxyXG5cclxuPHA+MzMsIDM5LCA1MSwgNTcsIDY5LCA4NCwgOTYsIDExMSwgMTE0LCAxMjAsIDEyMywgMTI5LCAxNDEsIC4uLjxcL3A+XHJcblxyXG48cD5UaGUgbnVtYmVyIG4gaXMgY2FsbGVkIGEgZ2VuZXJhdG9yIG9mIGQobikuIEluIHRoZSBzZXF1ZW5jZSBhYm92ZSwgMzMgaXMgYSBnZW5lcmF0b3Igb2YgMzksIDM5IGlzIGEgZ2VuZXJhdG9yIG9mIDUxLCA1MSBpcyBhIGdlbmVyYXRvciBvZiA1NywgYW5kIHNvIG9uLiBTb21lIG51bWJlcnMgaGF2ZSBtb3JlIHRoYW4gb25lIGdlbmVyYXRvcjogZm9yIGV4YW1wbGUsIDEwMSBoYXMgdHdvIGdlbmVyYXRvcnMsIDkxIGFuZCAxMDAuIEEgbnVtYmVyIHdpdGggbm8gZ2VuZXJhdG9ycyBpcyBhIHNlbGYtbnVtYmVyLiBUaGVyZSBhcmUgdGhpcnRlZW4gc2VsZi1udW1iZXJzIGxlc3MgdGhhbiAxMDA6IDEsIDMsIDUsIDcsIDksIDIwLCAzMSwgNDIsIDUzLCA2NCwgNzUsIDg2LCBhbmQgOTcuPFwvcD5cclxuXHJcbjxwPldyaXRlIGEgcHJvZ3JhbSB0byBvdXRwdXQgYWxsIHBvc2l0aXZlIHNlbGYtbnVtYmVycyBsZXNzIHRoYW4gMTAwMDAgaW4gaW5jcmVhc2luZyBvcmRlciwgb25lIHBlciBsaW5lLjxcL3A+XHJcbiIsImlucHV0IjoiIiwib3V0cHV0IjoiIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d

 

내가 푼 소스

def selfNum():
    list = [1]*10001 # 배열만듬
    list[0] = 0 #첫번째는 0으로 초기화

    for i in range(1, 10001):
        if i < 10: #10 이하는 자기자신과 1의자리수(자기자신) 더함
            res = i + i
            list[res] = 0
        elif i < 100: #자기자신 + 10의자리 + 1의자리
            res = i + (i // 10) + (i % 10) 
            list[res] = 0
        elif i < 1000: #자기자신 + 100의자리 + 10의자리 + 1의자리
            res = i + (i // 100) + ((i % 100) // 10) + ((i % 100) % 10)
            list[res] = 0
        elif i < 10000: #자기자신 + 1000의자리 + 100의자리 + 10의자리 + 1의자리
            res = i + (i // 1000) + ((i % 1000) // 100) + (((i % 1000) % 100) // 10) + (((i % 1000) % 100) % 10)
            if res <= 10000: #10000넘는건 안해도됨
                 list[res] = 0

    for i in range(len(list)): #출력
        if list[i] == 1:
            print(i)

def main():
    selfNum()

if __name__ == '__main__':
    main()

'알고리즘' 카테고리의 다른 글

[BOJ-11720] 숫자의 합  (0) 2020.06.18
[BOJ-2748] 피보나치 수 2  (0) 2020.06.15
[BOJ-2609]최대공약수와 최소공배수  (0) 2020.06.11
[BOJ-2755]숫자의 개수  (0) 2020.06.10
[111726번] 2 x n 타일링  (0) 2017.12.12

문제

피보나치 수는 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은 90보다 작거나 같은 자연수이다.

출력

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

예제 입력 1

10

예제 출력 1

55
W3sicHJvYmxlbV9pZCI6IjI3NDgiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQ1M2NcdWJjZjRcdWIwOThcdWNlNTggXHVjMjE4IDIiLCJkZXNjcmlwdGlvbiI6IjxwPlx1ZDUzY1x1YmNmNFx1YjA5OFx1Y2U1OCBcdWMyMThcdWIyOTQgMFx1YWNmYyAxXHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU1Y1x1YjJlNC4gMFx1YmM4OFx1YzlmOCBcdWQ1M2NcdWJjZjRcdWIwOThcdWNlNTggXHVjMjE4XHViMjk0IDBcdWM3NzRcdWFjZTAsIDFcdWJjODhcdWM5ZjggXHVkNTNjXHViY2Y0XHViMDk4XHVjZTU4IFx1YzIxOFx1YjI5NCAxXHVjNzc0XHViMmU0LiBcdWFkZjggXHViMmU0XHVjNzRjIDJcdWJjODhcdWM5ZjggXHViZDgwXHVkMTMwXHViMjk0IFx1YmMxNFx1Yjg1YyBcdWM1NWUgXHViNDUwIFx1ZDUzY1x1YmNmNFx1YjA5OFx1Y2U1OCBcdWMyMThcdWM3NTggXHVkNTY5XHVjNzc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0XHViOTdjIFx1YzJkZFx1YzczY1x1Yjg1YyBcdWMzNjhcdWJjZjRcdWJhNzQgRjxzdWI+bjxcL3N1Yj4gPSBGPHN1Yj5uLTE8XC9zdWI+ICsgRjxzdWI+bi0yPFwvc3ViPiAobiZndDs9MilcdWFjMDAgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5uPTE3XHVjNzdjXHViNTRjIFx1YWU0Y1x1YzljMCBcdWQ1M2NcdWJjZjRcdWIwOThcdWNlNTggXHVjMjE4XHViOTdjIFx1YzM2OFx1YmNmNFx1YmE3NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD4wLCAxLCAxLCAyLCAzLCA1LCA4LCAxMywgMjEsIDM0LCA1NSwgODksIDE0NCwgMjMzLCAzNzcsIDYxMCwgOTg3LCAxNTk3PFwvcD5cclxuXHJcbjxwPm5cdWM3NzQgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0Yywgblx1YmM4OFx1YzlmOCBcdWQ1M2NcdWJjZjRcdWIwOThcdWNlNTggXHVjMjE4XHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBuXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gblx1Yzc0MCA5MFx1YmNmNFx1YjJlNCBcdWM3OTFcdWFjNzBcdWIwOTggXHVhYzE5XHVjNzQwIFx1Yzc5MFx1YzVmMFx1YzIxOFx1Yzc3NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIG5cdWJjODhcdWM5ZjggXHVkNTNjXHViY2Y0XHViMDk4XHVjZTU4IFx1YzIxOFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMjc0OCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkZpYm9uYWNjaSBOdW1iZXIgMiIsImRlc2NyaXB0aW9uIjoiPHA+VGhlIEZpYm9uYWNjaSBzZXF1ZW5jZSBpcyBjYWxjdWxhdGVkIGJ5IGFkZGluZyB0aGUgcHJldmlvdXMgdHdvIG51bWJlcnMgb2YgdGhlIHNlcXVlbmNlLiBUaGUgZmlyc3QgdHdvIG51bWJlcnMgaW4gdGhlIEZpYm9uYWNjaSBudW1iZXIgYXJlIDAgYW5kIDEuPFwvcD5cclxuXHJcbjxwPlRoZSBzZXF1ZW5jZSZuYnNwO0ZuIG9mIEZpYm9uYWNjaSBudW1iZXJzIGlzIGRlZmluZWQgYnkgdGhlIHJlY3VycmVuY2UgcmVsYXRpb246IEY8c3ViPm48XC9zdWI+ID0gRjxzdWI+bi0xPFwvc3ViPiArIEY8c3ViPm4tMjxcL3N1Yj4gKG4gJmdlOyAyKS48XC9wPlxyXG5cclxuPHA+R2l2ZW4gYW4gaW50ZWdlciBuLCB3cml0ZSBhIHByb2dyYW0gd2hpY2ggcHJpbnRzIG50aCBGaWJvbmFjY2kgbnVtYmVyLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgY29udGFpbnMmbmJzcDtvbmUgaW50ZWdlciZuYnNwO24uICgxICZsZTsgbiAmbGU7IDkwKTxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCBvbmUgbGluZSBvZiBvbmUgaW50ZWdlciwgbnRoIEZpYm9uYWNjaSBudW1iZXIuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d

내가 푼 답

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

def fib2(n):
    f = [0]*(n+1)
    if n == 0:
        return 0
    elif n == 1:
        return 1
    elif n == 2:
        return 1
    else:
        f[1] = 1
        for i in range(2,n+1):
            f[i] = f[i-1] + f[i-2]
            return f[n]
def main():
    a = int(input())
    print(fib2(a))

if __name__ == '__main__':
    main()


참고할만한 소스

N = int(input())
dp = [0,1]

for i in range(2,n+1):

    dp.append(dp[i-1] + dp[i-2])  <--와;;

print(dp[-1])          <--와

'알고리즘' 카테고리의 다른 글

[BOJ-11720] 숫자의 합  (0) 2020.06.18
[BOJ-4673] 셀프 넘버  (0) 2020.06.16
[BOJ-2609]최대공약수와 최소공배수  (0) 2020.06.11
[BOJ-2755]숫자의 개수  (0) 2020.06.10
[111726번] 2 x n 타일링  (0) 2017.12.12

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

예제 입력 1

24 18

예제 출력 1

6
72

 

많이 나오는 문제 GCD, LCM

내가 푼 소스 

// 연산자를 한번 더 생각하자!

def gdc(a, b):
    while b != 0:
        tmp = a % b
        a = b
        b = tmp
    return a

def lcm(a, b):
    g = gdc(a, b)
    return a * b // g 

def main():
    a, b = map(int,input().split())
    print(gdc(a, b))
    print(lcm(a, b))

if __name__ == '__main__':
    main()

--------------------------------------------

생각해볼만한 소스

def gcd(a,b):
    """Compute the greatest common divisor of a and b"""
    while b > 0:
        a, b = b, a % b
    return a
    
def lcm(a, b):
    """Compute the lowest common multiple of a and b"""
    return a * b / gcd(a, b)

'알고리즘' 카테고리의 다른 글

[BOJ-4673] 셀프 넘버  (0) 2020.06.16
[BOJ-2748] 피보나치 수 2  (0) 2020.06.15
[BOJ-2755]숫자의 개수  (0) 2020.06.10
[111726번] 2 x n 타일링  (0) 2017.12.12
[2579번] 계단 오르기  (0) 2017.12.12

문제

세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 

A × B × C = 150 × 266 × 427 = 17037300 이 되고, 

계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

입력

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.

출력

첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

예제 입력 1

150
266
427

예제 출력 1

3
1
0
2
0
0
0
2
0
0

 

내 답

a = int(input())
b = int(input())
c = int(input())
n = str(a*b*c)
li = [0]*10
for i in range(len(n)):
    li[int(n[i])] = li[int(n[i])]+1
for i in range(10):
    print(li[i])

-------------

찾아보았는데 더 좋아보였던 답

a = int(input())
b = int(input())
c = int(input())
k = a*b*c
k_list = list(str(k))
for i in range(10):
    d = k_list.count(str(i))
    print(d)

-----------------------

'알고리즘' 카테고리의 다른 글

[BOJ-2748] 피보나치 수 2  (0) 2020.06.15
[BOJ-2609]최대공약수와 최소공배수  (0) 2020.06.11
[111726번] 2 x n 타일링  (0) 2017.12.12
[2579번] 계단 오르기  (0) 2017.12.12
[1463번] 1로 만들기  (0) 2017.12.12

+ Recent posts