이렇게 푸는게 아니지만, 답도 이상해 처음부터
 
import sys
 
n = int(input())
num = list(sys.stdin.readline().strip())
#print(num)
#num.sort(reverse=True)
#print(num)
 
cnt = 0
set = 0
 
if 0 < n <= 3:
  cnt = -1
elif n % 3 == 1:
  cnt = 1
elif n % 3 == 2:
  cnt = 3
elif n % 3 == 0:
  cnt = 2
 
#print("cnt=", cnt)
 
for i in range(n - 1, -1, -1):
  if cnt != -1:
    if (cnt % 3 == 2) & (set != 0):
      print(",", end="")
 
    set = 1
 
  print(num[i], end="")
  cnt = cnt + 1
 
이거도 간단하게 
 
import sys
num = list(sys.stdin.readline().rstrip())
#print(num)
 
for i in range(len(num)-1,-1,-1):
  print(num[i],end="")
 
일단 간단하게
 
n = int(input())
 
arr=list(map(int,input().split()))
 
#print(arr)
#print(arr[0],arr[n-1])
 
for i in range(n-1,-1,-1):
  print(arr[i], end=" ")
 
논리를 만들다 보니 형태가 비슷하게 나온다.....
http://chul0302.egloos.com/3300468 이것과 답이 거의 같다...
 
 
n = int(input())
 
d = [0] * 10001
 
d[1] = 1
d[2] = 2
 
for i in range(3, n+1):
    d[i] = (d[i-1] + d[i-2]) % 100000007
 
print(d[n])
 
계단 오르기는 이젠 충분히 마스터 된듯...
그리고 d의 개수가 크면 %1000으로...
아니면 그냥;;;
 
n = int(input())
 
d = [0] * 21
 
d[1] = 1
d[2] = 2
 
for i in range(3, n+1):
    d[i] = (d[i-1] + d[i-2])
 
print(d[n])

https://codeup.kr/problem.php?id=3704

 
계단오르기
 
계단은 1,2,3칸으로 움직일수 있으므로, 고유하다( 중복 x)
Stair (1) = 1 --> 1가지
S (2) = 2. 1+1 --> 2가지 
S (3) = 3, 2+1, 1+2, 1+1+1 --> 3가지
 
근데 다시 생각해 보면 계단 3개로 구분되니, 계단 3개 기준으로 값을 계산하면....
 
그럼 S(4)는?? 
S(4-3) + S(4-2) + S(4-1) = 1+2+4 = 7가지임
 
그럼 다시 문제에서 나온 S(5)는?
S(4)+S(3)+S(2)=7+4+2=13 
 
논리는 이해가 되었으나 재귀로 풀면 시간초과가 생긴다...
결국 for로 돌려서 답은 나옴...
 
n = int(input())
 
d = [0] * 100001
 
d[1] = 1
d[2] = 2
d[3] = 4
 
for i in range(4, n+1):
    d[i] = (d[i-1] + d[i-2] + d[i-3]) % 1000
 
print(d[n])
 

+ Recent posts