[지코바] 5월 둘째주 문제풀이

상수·2022년 5월 13일
0

1074) Z (상수)

def zeta_search(n, r, c):
  if n == 1:
    return r * 2 + c
  elif n > 1:
    return 4 * zeta_search(n - 1, int(r / 2), int(c / 2)) + zeta_search(1, r % 2, c % 2)
  else:
    return -1

n, r, c = list(map(int, input().split()))

result = int(zeta_search(n, r, c))
print(result)

11866) 요세푸스 문제 0 (문석)

n, k = map(int, input().split())
circle = []
josephus = []

for index in range(n):
  circle.append(index + 1)

for _ in range(n):
  for index in range(k):
    first = circle.pop(0)
    if index < k - 1:
      circle.append(first)
    else:
      josephus.append(first)


print(repr(josephus).replace('[', '<').replace(']', '>'))

10773) 제로 (지윤)

class Account:
  def __init__(self):
    self.records = []
  def push(self, e):
    self.records.append(e)
  def pop(self):
    if len(self.records) > 0:
      self.records.pop()
  def sum(self):
    result = 0
    for index in range(len(self.records)):
      result = result + self.records[index]
    return result

k = int(input())
account = Account()

while k > 0:
  n = int(input())
  if n == 0:
    account.pop()
  else:
    account.push(n)
  k = k - 1

print(account.sum())

10814) 나이순 정렬 (태홍)

class Member:
  def __init__(self, id: int, age: int, name: str):
    self.id = id
    self.age = age
    self.name = name

  def getIdAndName(self):
    return str(self.age) + ' ' + self.name

n = int(input())

members = []

for index in range(n):
  age, name = input().split()
  member = Member(index, int(age), name)
  members.append(member)

members.sort(key=lambda member: member.age)

for index in range(n):
  print(members[index].getIdAndName())

1003) 피보나치 함수 (병진)

t = int(input())

zeros = [1, 0]
ones = [0, 1]

for index in range(2, 41):
  zeros.append(zeros[index-2] + zeros[index-1])
  ones.append(ones[index-2] + ones[index-1])

while t > 0:
  n = int(input())
  print(str(zeros[n]) + ' ' + str(ones[n]))
  t = t - 1
profile
Dart와 TypeScript를 다룹니다.

0개의 댓글