분류 전체보기89 2023 04 03 코딩 테스트 연속된 수의 합 해당 문제에서 total 값을 num으로 나누게 되면 결과값의 절반이 되는 값이 결과값의 중간이 된다는 사실을 알게되고 start_num = total//num - (num - 1) // 2 중간값에서 넘버의 갯수값을 빼서 시작값을 알아내고 그것을 for문을 통해 [a for a in range(start_num, start_num + num)] 리스트 컴프리헨션을 통해서 시작값부터 시작값에서 num만큼 플러스 한값만큼 출력하게 해서 풀었스빈다! 내일배움 캠프/TIL 2023. 4. 3. 내일 배움 캠프 3주차 WIL 이번주에 배운것들! 알고리즘 기초 파이썬 팀 프로젝트! 이번주를 돌아보며... 이번주는 개인프로젝트에서 만들었던 rpg게임에서 조금더 내용을 붙인 기능이 추가된 게임을 만들게되었습니다. 새로운 기능이 추가되면서 어떻게 코딩을 해야할지 막히는 부분도 있었고 되던게 안되는 부분도 있었고 지난번에 썻던거에서 이렇게 하면안댄다! 하는거는 피드백을 받은대로 수정을 하는 절차를 가지면서 파이썬에 활용도를 조금더 높일 수 있는 기회가 되었고 프로젝트를 하면서 오전시간에 진행된 알고리즘에서는 정렬 알고리즘 리스트 알고리즘 같은거를 알려주면서 알고리즘이 무엇인지 기초를 알려주셧고 코딩테스트의 중요성에 대해서 설명해 주시면서 어떻게 하면 되는지 배웠습니다! 내일배움 캠프/WIL 2023. 4. 3. 내일 배움 캠프 2주차 WIL 이번주에 공부한것들! 파이썬 문법 기초 파이썬 문법 심화 파이썬을 이용한 터미널 RPG 이번주를 돌아보며... 자바스크립트는 예전에 조금 써봐서 어느정도 할줄알았는데 파이썬은 자바스크립트랑은 조금 문법이 다르기도 하고 사용법이 달라서 처음에는 어려웠지만 강의를 듣고 활용을 해보면서 파이썬에 대한 활용도를 조금 높일수 있는 기회가 되었고 강의를 들은후에 진행한 개인 프로젝트인 prg 제작은 배운것들을 활용할 수 있는 시간이 되었습니다. 아직 패킹 언패킹.. 리스트 컴프리헨션 같은게 활용하는 방법이 조금 어렵기는 해도 파이썬이 되게 재밋고 사용하기 쉬운언어라는걸 알수가 있었습니다 내일배움 캠프/WIL 2023. 4. 3. 2023 03 31 키워드 인수를 한번에 가져와서 간단하게 쓰기! monster_list[monster(name,level,.....)] 원래는 몬스터 리스트를 이런식으로 구현을 해서 클래스에서 받아올때도 하나하나 받아와야했고 또 데이터가 많아지니까 뭐가 뭔지를 헷갈리는 상황이 발생했습니다 그래서 이날 아침에 들은 강의에서 패킹 언패킹 구조를 활용하면 클래스에서 불러올때 더 쉽고 간단하게 불러올수 있다고 하셔서 바로 적용 시켯습니다 이런 방식으로 데이터를 저장한 후 클래스 에서 불러올때 monster_list = [ Monster( name ="name", level= 1, hp= 200, physical_damage= 20, ) 이런식으로 조금더 코드를 짤때 뭐가 뭔지 쉽게 알수있는 방법을 활용해서 나중에 다시 코드를 봤을때 이게 뭐지? 라는 생각이 들지 않도록 수정.. 내일배움 캠프/TIL 2023. 3. 31. 2023 03 30 json을 이용한 세이브 & load 지난번 rpg게임에서 save & load를 만들때는 .txt파일을 이용해서 만들었기 때문에 쓸대없이 노가다가 심한 부분이 생겼습니다. 그래서 그때 받은 튜터님의 조언을 듣고 이번에는 json을 이용해서 def save(self,name): with open(f"{name}.json","w") as f: json.dump(self.__dict__,f) __dict__요소들로 전부 받아와서 그거를 json 파일로 저장한다음에 세이브를 구현 하였고 def load(self,name): with open(f"{name}.json","r") as f: self.__dict__ = json.load(f) 불러올때는 저장한 데이터를 그대로 붙여넣어서 save& load를 개선하였습니다! 내일배움 캠프/TIL 2023. 3. 31. 2023 03 29 코딩테스트 최빈값 구하기 return answer[0] if len(answer) ==1 else -1 문제설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항 0 내일배움 캠프/TIL 2023. 3. 31. 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.. 내일배움 캠프/TIL 2023. 3. 29. 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("---.. 내일배움 캠프/TIL 2023. 3. 29. 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)**.. 내일배움 캠프/TIL 2023. 3. 24. 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.. 내일배움 캠프/TIL 2023. 3. 23. 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']가 들.. 내일배움 캠프/TIL 2023. 3. 22. 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)))) 다른 사람의 코드를 보고 나니 엄.. 내일배움 캠프/TIL 2023. 3. 22. 이전 1 ··· 4 5 6 7 8 다음