<코딩도장 심사문제 다시 풀며 확인한 것>

  1. 심사문제 32.5는 분명 중복 정답이 있는 것 같은데 적용이 안 된다. 그래서 원래 정답과 내가 푼 정답을 같이 적어 놓으려고 한다.

요점은 파일명의 숫자를 3자리로 만드는 식인데 분명 다 세 자리가 나오는 답이고 문자열 포멧팅인데 왜 정답처리가 안 되는지 모르겠다.

원래 정답

list(map(lambda x: '{0:03d}'.format(int(x.split('.')[0])) +'.'+ x.split('.')[1], files))

내 풀이

print(list(map(lambda x : '%03d' % int(x.split('.')[0]) + '.' + x.split('.')[1] ,files)))

요점은 어떤 문자열 포멧팅을 쓰는가인데.. 일단 두 방법 다 알고 있어야겠다.

  1. 이 쯤 되면 외워질 정도였으면 좋겠을 재귀 함수 피보나치 수열
def fib(a):
  if a<=1:
    return a
  else:
    return fib(a-1) + fib(a-2)


n = int(input())
print(fib(n))

공식에 대한 이해가 되었으니 다음에는 다른 방법으로도 수열을 구하는 법을 연구해봐야겠다.

  1. 심사문제 30.7 (어렵게 생각하지 말자.)
    딕셔너리 value만 계산하고 싶을 땐 그냥 꺼내 쓰면 된다.
def get_min_max_score(*args):
  return min(args), max(args)
def get_average(**kwargs):
  return sum(kwargs.values()) / len(kwargs)
  
  1. 심사문제 28.4
    아무래도 파일 여는 방식을 잘못 선택했고, 파일에 문자가 일렬로 되어 있는게 아니라 \n 제거를 했어야 했는데 제거를 안 해서 계속 결과가 안 나왔던 것 같다.
with open('word.txt', 'r') as file:
  words = file.readlines()
  for i in words:
    i = i.strip('\n')
    if i == i[::-1]:
      print(i)
  1. 심사문제 27.6
    파일 여는 방식에 대해서 많이 까먹은 것 같다. 문제 전체적으로 다시 풀고 꼭 복습해야겠다.
file = open('words.txt', 'r') # 비교적 단순한 방법이었음. 문장을 뽑아내는 것이 아님.
sentence = file.read()
word = sentence.split()
for i in word:
  if 'c' in i:
    print(i.strip(',.')) # ,. 삭제하고 프린트해야 함.
profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글