전체 글
-
TIL 2023.04.04내일배움캠프 2023. 4. 4. 20:51
오늘은 평온하게 알고리즘 3 문제 풀고 쟝고 기초 강의 2, 3, 4주차 들었다. 알고리즘 문제 풀이 중에 새로 알게된 연산자가 있다. 파이썬 3.8부터 추가된 기능인데, 생소한 사람이 많을 것이라 생각한다. 간단하게 말하면 할당과 반환을 동시에 하는 연산자라고 한다. 1. 개념 변수 := 표현식 기본적인 문법은 이렇게 되고, 작동하는 방식은 표현식의 결과를 변수에 할당함과 동시에 반환한다. 즉, 변수 = 표현식을 하고, return 변수 기능을 같이 한다. 2. 목적 할당과 반환을 동시에 함으로써, 코드량을 줄일 수 있다. 즉, 코드량이 줄어들면서 가독성이 높아지는 효과로 볼 수 있다. 3.예시 s = 'I love pizza' result = 'pizza' in s if result: print(s,..
-
TIL 2023.04.03내일배움캠프 2023. 4. 3. 21:11
오늘 처음으로 페어 프로그래밍이란 걸 해봤죠. 세 문제 풀었는데 두 문제는 아직도 남들 풀이가 이해가 안되고, 하나는 이진법에 관한 문제였는데 새로운 걸 알게 되었답니다. 우선 문제구요. 저는 이진법을 십진법으로, 십진법을 이진법으로 변환하는 함수를 알지 못했습니다. 그래서 또 무식하게 풀었는데요. 2의 n제곱들을 나열한 리스트를 만들고 bin1, bin2로 들어온 인자의 각 자리수에 그 리스트를 곱해주는 것으로 이진법을 십진법으로 변환했습니다. def solution(bin1, bin2): bin_ = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] sib1 = 0 sib2 = 0 for i, num in enumerate(bin1[::-1]): sib1 += (int(num)*..
-
TIL 2023.03.31내일배움캠프 2023. 3. 31. 22:04
오늘은 어제 알고리즘 세션에서 배운 정렬 알고리즘을 분석해봤는데 새로운 걸 알게 되었다. my_string_list[num1], my_string_list[num2] = my_string_list[num2], my_string_list[num1] 이런식으로 a, b = b, a 하면 서로 바뀌게 된다. 대박 그리고 팀과제 해설 강의에선 알게된 게 정말 많다. 딕셔너리의 활용이 정말 무궁무진한데, class BaseCharacter: def __init__(self, name, hp, normal_power): self.name = name self.max_hp = hp self.current_hp = hp self.normal_power = normal_power self.actions = { "1": ..
-
TIL 2023.03.30내일배움캠프 2023. 3. 30. 20:15
알고리즘 세션 2일차 링크드리스트 노드가 꼬리의 꼬리를 무는 형태 노드를 클래스로 정의할 수 있음 노드를 바탕으로 이러한 자료구조(링크드리스트)를 나타내야하는데 가장 앞에 있는 노드= 헤드 가장 뒤에+테일 헤드에 노드값 넣고 초기화 어팬드 갯 노드 예를 들어 노드가 엄청나게 많이 연결돼있어 n번째 노드에 접속하고 싶다 이때 검색의 시간복잡도 O(n) 최악의경우 빅-오 링크드리스트 굉장히 호율적인 자료구조지만 아닌 경우도 있어 1000만 회원 웹사이트 1000만회원을 링크드리스트로 저장을해? 검색하는데 천만이면 0.1초 걸리는데 느린거거든요 스택/ 큐, 정렬 컴퓨터 사이언스 전반에서 매우 자주 등장하는 자료구조 코딩테스트 빈출 유형 스택 개념 한쪽 끝이 막혀 있는 통과 같은 자료구조 스택에 데이터를 저장한..
-
TIL 2023.03.29내일배움캠프 2023. 3. 29. 20:23
알고리즘 세션 자료구조/알고리즘 기본적인 자료구조와 알고리즘 어떻게 되는 지만 알고 가도 성공 정말 많은 시간투자 필요 개발자로서 취업하려면 포트폴리오 만큼이나 더 큰 비중을 가지고 준비 이틀동안 어떤 걸 배울지 왜 배우는 지 파이썬 기반으로 코드를 작성할 때 어떤 자료구조아 ㅁㄴㅇㄹ 데이터스트럭터/알고리즘 연결리스트(링크드리스트) 꼬리에 꼬리를 무는 형태로 관리해야 효율적으로 관리 가능 스택(후입선출) 트리 알고리즘:효율적으로 연산하는 방법 자료구조와 알고리즘은 상호보완적인 관계 내가 원하는 목적을 구하기 위해 어떤 순서로 연설을 하느냐 즉석퀴즈? 1280원 짜리 빵 500원 100원 50원 10원 동전 최소한의 동전을 사용하여 이 빵을 살 수 있는 방법 몇 개? 한개지 뭐 문법에 맞고 실행만 되면 되..
-
TIL 2023.03.28내일배움캠프 2023. 3. 28. 21:17
파이썬 개인 과제 해설 및 리뷰가 있었다. 해설 도중 새롭게 알게 된 부분(vscode) 알트(맥은 Option) 누르면 다중선택가능 컨트롤(맥은 Command)+f2로 변수 일괄수정가능 내 과제 리뷰(아래 코드 부분) def attack(self, other, attack_type): # 공격 타입 선택에서 일반공격 입력 시 if attack_type == "일반공격": damage = random.randint(self.power * 0.8, self.power * 1.2) other.hp = max(other.hp - damage, 0) print(f"\n{self.name}의 공격! {other.name}에게 {damage}의 데미지를 입혔습니다.") if other.hp == 0: print(f..
-
TIL 2023.03.27내일배움캠프 2023. 3. 27. 20:16
개인과제로 게임을 만들어야 했는데, while 반복문을 사용해 종료 조건을 충족할 때까지 턴제 플레이어와 몬스터간 전투를 반복 진행해야 했다. 그래서 while문에 대해 알아 보았다. while player.hp > 0 and monster.hp > 0: # 현재상태 출력 print("\n=== 현재상태 === ") player.show_status() monster.show_status() # 공격 타입 선택 while True: attack_type = input("\n공격 타입을 선택하십시오[ 일반공격 / 마법공격]: ") os.system('clear') attack = player.attack(monster, attack_type) if attack: break # 몬스터 체력이 0이하일 경우 ..