코딩도장 심사문제모음
-
34.6 심사문제: 게임 캐릭터 클래스 만들기코딩도장 심사문제모음 2020. 11. 8. 21:12
표준 입력으로 게임 캐릭터 능력치(체력, 마나, AP)가 입력됩니다. 다음 소스 코드에서 애니(Annie) 클래스를 작성하여 티버(tibbers) 스킬의 피해량이 출력되게 만드세요. 티버의 피해량은 AP * 0.65 + 400이며 AP(Ability Power, 주문력)는 마법 능력치를 뜻합니다. 사용한 코드 1. class 2. def 3. self 첫 접근 방법 클래스 이름/ 메서드 이름/ 매개변수 3개 를 이용하기만 하면 문제를 해결 할 수 있다. 풀이 아래와 같이 self, 매개변수를 이용하고 모든 매개변수를 그대로 속성으로 만들어준다. class Annie: def __init__ (self, health, mana, ability_power): self.health = health self.m..
-
34.5 연습문제: 게임 캐릭터 클래스 만들기코딩도장 심사문제모음 2020. 11. 8. 20:40
다음 소스 코드에서 클래스를 작성하여 게임 캐릭터의 능력치와 '베기'가 출력되게 만드세요. 풀이 사용한 클래스명 / 메서드 명 / 매개변수 3개 인 점으로 해결 가능하다. class Knight: def __init__(self, health, mana, armor): self.health = health self.mana = mana self.armor = armor def slash (self): print('베기') x = Knight(health=542.4, mana=210.3, armor=38) print(x.health, x.mana, x.armor) :: 542.4 210.3 38 x.slash() :: 베기
-
33.6 심사문제: 카운트다운 함수 만들기코딩도장 심사문제모음 2020. 11. 6. 22:38
표준 입력으로 정수가 입력됩니다. 다음 소스 코드를 완성하여 함수 c를 호출할 때마다 숫자가 1씩 줄어들게 만드세요. 여기서는 함수를 클로저로 만들어야 합니다. 정답에 코드를 작성할 때는 def countdown(n):에 맞춰서 들여쓰기를 해주세요. 사용한 코드 1. nonlocal 2. def 3. return 첫 접근 방법 10을 입력할 경우 10(포함), 9, 8, ... 1 이 마지막이라는 것을 기준으로 범위만 정해주면 이전 연습문제와 같이 어려운 부분없이 문제 해결이 가능하다. 풀이 1. countdown의 지역 변수 count 를 만들고 n + 1로 입력된 n 값도 함께 출력되도록 만들어준다. def countdown(n): count = n + 1 2. down이라는 안쪽 함수를 하나 더 생..
-
33.5 연습문제: 호출 횟수를 세는 함수 만들기코딩도장 심사문제모음 2020. 11. 6. 22:27
다음 소스 코드를 완성하여 함수 c를 호출할 때마다 호출 횟수가 출력되게 만드세요. 여기서는 함수를 클로저로 만들어야 합니다. 풀이 1. 먼저 counter 를 클로저로 만들어주기 위해 counter 함수 안의 count 함수를 직접 함수를 호출하지 않고 리턴으로 count 값을 직접 반환 counter 함수에 c를 할당하였고 counter 에서 count를 반환하였기에 c에도 count가 들어가게된다. 2. nonlocal i 를 이용해 바깥쪽 함수의 지역 변수 i 를 i = i +1 로 변경해준다 함수가 실행될때마다 i 값은 누적된다. 3. 누적된 i 값이 즉 호출 횟수이므로 이를 반환하여 counter 에게로 궁극적으로는 c로 반환되도록 해준다. def counter(): i = 0 def cou..
-
32.5 심사문제: 파일 이름을 한꺼번에 바꾸기코딩도장 심사문제모음 2020. 11. 6. 17:52
표준 입력으로 숫자.확장자 형식으로 된 파일 이름 여러 개가 입력됩니다. 다음 소스 코드를 완성하여 파일 이름이 숫자 3개이면서 앞에 0이 들어가는 형식으로 출력되게 만드세요. 예를 들어 1.png는 001.png, 99.docx는 099.docx, 100.xlsx는 100.xlsx처럼 출력되어야 합니다. 그리고 람다 표현식을 사용해야 하며 출력 결과는 리스트 형태라야 합니다. 람다 표현식에서 파일명을 처리할 때는 문자열 포매팅과 문자열 메서드를 활용하세요. 사용한 코드 1. list 2. map 3. {}.format 4. int 첫 접근 방법 이번 문제는 생각을 굉장히 많이해야하는 문제였다. 또한, 메서드를 알아도 어떻게 적용하는지를 몰라 구글링 힌트를 보지 않고서는 풀지 못했다. (결론, 힌트 참고..
-
32.4 연습문제: 이미지 파일만 가져오기코딩도장 심사문제모음 2020. 11. 5. 20:52
다음 소스 코드를 완성하여 확장자가 .jpg, .png인 이미지 파일만 출력되게 만드세요. 여기서는 람다 표현식을 사용해야 하며 출력 결과는 리스트 형태라야 합니다. 람다 표현식에서 확장자를 검사할 때는 문자열 메서드를 활용하세요. 풀이.1 files = ['font', '1.png', '10.jpg', '11.gif', '2.jpg', '3.png', 'table.xslx', 'spec.docx'] a =list(filter(lambda x :'jpg' in x or 'png' in x ,files)) print(a) :: ['1.png', '10.jpg', '2.jpg', '3.png'] in 연산자를 통해 files 각 요소의 문자열 안에 "jpg, png' 파일이 있다면 참으로 filter를 이용..
-
31.5 심사문제 : 재귀호출로 피보나치 수 구하기코딩도장 심사문제모음 2020. 11. 4. 16:42
표준 입력으로 정수 한 개가 입력됩니다(입력 값의 범위는 10~30). 다음 소스 코드를 완성하여 입력된 정수에 해당하는 피보나치 수가 출력되게 만드세요. 피보나치 수는 0과 1로 시작하며, 다음 번 피보나치 수는 바로 앞의 두 피보나치 수의 합입니다. 사용한 코드 1. def 2. if 3. return 첫 접근 방법 0, 1로 시작하는점 호출하는 인수의 개수가 "하나"인점 수열의 일정 규칙이 있다는점을 파악하여 문제를 해결 할 수 있다. 풀이 코드를 작성하기 전 문제부터 살펴보자 입력값 n 과 결과값을 나열하여 수열이라 생각해 관계를 살펴보자. # n # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21... ..
-
31.4 연습문제 : 재귀호출로 회문 판별하기코딩도장 심사문제모음 2020. 11. 4. 13:18
다음 소스 코드를 완성하여 문자열이 회문인지 판별하고 결과를 True, False로 출력되게 만드세요. 여기서는 재귀호출을 사용해야 합니다. 첫 접근 방법 연습문제 치고는 여러웠다. 힌트를 봐야만 실마리를 잡을 수 있었다. 사실 회문을 왜 재귀호출로 판별해야하는지는 이해가 가질 않는다. 또한, 이전에 배웠던 index 슬라이싱을 이용해야 한다는 점에서 다시 한번 인지되어 좋은 문제였다. 풀이 ## 해당 함수는 True or False 두가지 값을 반환해야하므로 재귀호출을 중지시켜주는 조건이 2개가 필요하다 def rrr (word): if len(word) < 2: return True elif word[0] != word[-1]: return False else: return rrr(word[1:-1]..