본문 바로가기

내일배움 캠프

(76)
2023 03 29 코딩테스트 최빈값 구하기 return answer[0] if len(answer) ==1 else -1 문제설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항 0
2023 03 28 파이썬 rpg 저장 구현,,, 뭔가 게임을 만들면서 개인적으로 세이브 로드를 구현하고 싶어져서 어떻게 하면 좋을까? 생각을 해보다가 가장 먼저 생각난게 txt파일로 저장해서 그거를 불러오면 스테이터스 값이 그대로 유지가 되지 않을까 라는 생각으로 with open(f"{self.name}.txt", "w") as f: f.write(f"{self.name}\n") f.write(f"{self.level}\n") f.write(f"{self.max_experience}\n") f.write(f"{self.experience}\n") f.write(f"{self.max_hit_point}\n") f.write(f"{self.hit_point}\n") f.write(f"{self.max_magic_point}\n") f.write(f"{s..
2023 03 27 파이썬 터미널 RPG 만들기 파이썬을 이용해서 rpg게임을 만드는 개인 프로젝트가 있어서 어떠한 방식으로 알피지를만들지 고민을 했습니다. 처음에는 1 대 1로 단순히 싸우는 게임을 만들자로 시작을 해서 몬스터를 찾아서 싸우는 던전 방식으로 짜고자 생각을 하고 print('어떤 행동을 취할까?') print("------------------------") time.sleep(0.3) novice.show_user_status() print(f'상대 {monster.name}의 체력: {monster.hit_point}') if spawn else False time.sleep(0.4) print('1. 일반공격 2. 특수공격') if spawn else print('1.몬스터찾기 2.보스랑 싸우기 3.저장하기') print("---..
2023 03 24 재귀 함수를 이용해서 복리 구하기 이용한 공식 이 공식을 이용해서 주어진 값으로 복리를 계산하는 코드를 재귀함수를 이용해서 짜려고한다 첫시도.. def compound(p,r,n,t): if t == 2: return p*(1+r/n)**(n*t) else: return compound(p,r,n,t-1)*(1+r/n)**(n*t) print(compound(1500000, 0.043, 4, 6)) 결과값 : 3528509.243796015 정답: 1938836.8221341053 무식하게 박아본코드... 당연히 제곱이 무식하게 늘어나기때문에 실패를 했다 두번째 시도 def compound(p,r,t,n): if t == 1: return p*(1+r/n)**n else: return compound(p,r,t-1,n)*(1+r/n)**..
2023 03 23 코딩 테스트 소수 찾기 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 코드 구현 number= [n for n in numbers] perm=[] arr=[] for cnt in range(1,len(number..
2023 03 22 코딩 테스트를 하면서 새로 배운것들... 절대값 abs() 절대값을 구하는 함수인 abs()이다 이것을 사용한 코드를 찾게 된 계기는 두 정수 사이의 합이라는 문제에서 찾았는데 (abs(a-b)+1)*(a+b)//2 코드를 이용해서 답을 풀었다 sum(range(b,a+1)) if a>b else sum(range(a,b+1)) 나의 코드는 range값으로 더하는 방식으로 답을 구하려고 했지만 이 경우에는 a와 b사이의 값이 길어지면 코드의 실행시간이 매우 길어지게 된다는 이슈가있었다 그래서 절대값을 통해서 정답을 구하는것을 보고 알고리즘의 중요성에 대해서 느낄수가 있엇다 join() '구분자'.join(리스트) 리스트가 되어있는 데이터를 구분자 안에 있는 조건을 통해서 하나의 문자열로 합치는 코드입니다. 리스트에 ['a','b','c']가 들..
2023 03 21 자연수 뒤집어 배열로 만들기 def solution(n): strn=str(n) n으로 입력받은 자연수를 str(n)을 이용해서 데이터 타입을 String 형식으로 바꾼다음에 for a in range(len(strn),0,-1): answer.append(strn[a-1]) for 값을 len()을통해 n의 길이에서부터 0으로 향하게 해서 뒤집어서 append가 되게하였습니다 이렇게 하면 string 데이터가 되어서 int값으로 수정하기 위해서 for x in answer: new_answer.append(int(x)) int값으로 바꿔서 답이 출력되게 해서 정답을 제출했습니다.. 그런데!!!!! def solution(n): return list(map(int, reversed(str(n)))) 다른 사람의 코드를 보고 나니 엄..
2023 03 20 모의고사 코드테스트 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요...