728x90
반응형

분류 전체보기 322

[Baekjoon 2309 / python / 브론즈1] 일곱 난쟁이

hobit = [] # 난쟁이 리스트 for _ in range(9): # 9명 입력받음 hobit.append(int(input())) kee = sum(hobit) # 9명 난쟁이 키의 합을 구해둔다 def hobit7(hobit): for i in range(len(hobit)-1): # 난쟁이 2명을 선택하는 모든 경우의 수 인덱스를 구해서 반복한다 for j in range(len(hobit)): if j > i: if kee - (hobit[i] + hobit[j]) == 100: # 난쟁이 2명을 뺀 키가 100 이라면 정답 a = hobit[i] b = hobit[j] hobit.remove(a) # 난쟁이 삭제 hobit.remove(b) hobit.sort() # 정렬 for i in ..

[Baekjoon 9663 / python / 골드4] N-Queen

n = int(input()) pos = [0] * n # 퀸 위치 담을 리스트 flag_heng = [False] * n # 행 배제 flag_a = [False] * ((n-1) * 2 + 1) # 우상향 대각 배제 flag_b = [False] * ((n-1) * 2 + 1) # 좌상향 대각 배제 count = 0 # 경우의 수 def set(i): global count for j in range(n): if not flag_heng[j] and not flag_a[i + j] and not flag_b[(n-1) + i - j]: # 행 , 대각, 대각 안전할 때 pos[i] = j # i번째 열의 j번째 행에 퀸을 둔다 if i == n - 1: # 마지막 열까지 n개의 퀸을 뒀을 때, 즉 경..

[크래프톤 정글 5기] week01 알고리즘 주차 두번째 날, Big-O, 시간/공간 복잡도

리처드 파인만 공부법- 무언가를 간단하게 설명할 수 없다면, 그것을 제대로 이해하고 있는 것이 아니다- 어린이도 이해할 수 있을 만큼 쉽고 평이한 언어로 설명할 수 있도록 공부해야 함-> 어려운 단어, 문장을 그대로 외우는 게 아닌, 원리를 이해하여 간단히 설명할 수 있도록 연습 알고리즘 평가는 수행 시간/메모리 사용량에 기준을 둔다.시간 복잡도(Time Complexity)- 수행 시간에 해당함- 특정 크기의 입력을 기준으로, “필요한 연산의 횟수” 공간 복잡도(Space Complexity)- 메모리 사용량- 프로그램 실행/완료에 “필요한 메모리 공간” 시간 복잡도와 공간 복잡도는 “반비례”하는 경향이 있다.ex) 실행시간을 줄이면 메모리를 많이 쓰고, 메모리를 적게 쓰면 실행시간이 늘어나고...실제..

[Baekjoon 1914 / python / 실버1] 하노이 탑

n = int(input())def hanoi(no, start, end, mid): # no번 원반을 start에서 end로 옮긴다    if no == 1: # 원반이 1개라면 위에 방해되는 원반이 없으니 즉시 옮긴다        print(start, end)        return        else:        hanoi(no-1, start, mid, end) # 2개 이상이면 위에 방해되는 원반을 치운다         print(start, end) # 방해되는거 치웠으니 원래 옮기려던거 목표자리에 옮긴다        hanoi(no-1, mid, end, start) # 치워둔것도 목표자리에 옮긴다if n 20:    print(2 ** n - 1) # 최소횟수 출력    hanoi..

Algorithm/Recursion 2024.03.23

[Baekjoon 10872 / python / 브론즈3] 팩토리얼

def factorial(n): if n > 0: return n * (factorial(n - 1)) else: return 1 n = int(input()) print(factorial(n)) 팩토리얼은 n! 으로 표기하며, 1부터 n까지의 수를 곱하면 된다. 팩토리얼은 재귀함수로 표현할 수 있으며, 재귀함수는 자기 자신과 똑같은 함수를 호출하는 함수이다. 물론 팩토리얼의 구현은 재귀함수로 하지 않는 게 더 효율적이지만, 팩토리얼이 재귀함수를 호출할 때 사용되는 대표적인 예이기 때문에 재귀함수로 구현하였다.

Algorithm/Recursion 2024.03.22

[크래프톤 정글 5기] 첫 프로젝트를 마무리하며

4일 전 3월18일 월요일에 아침 7시20분 버스를 타고 수원으로 왔다. 기숙사 키와 정글 로고가 그려진 후드집업과 반팔을 받고, 기숙사에 짐을 풀고, 필요한 물품을 사고. 점심 먹고 14시부터 입소식이 시작되었다. 입소식이 마무리된 16시경부터 생각을 정리할 새도 없이 갑작스럽게 첫 미니프로젝트가 시작되었다. 팀원은 나까지 총 3명. 주제는 "어떤 식으로든 돌아가는 웹 서비스 만들기". 주어진 시간은 3박 4일. 하지만 3박 4일이라고 해도 첫날은 16시부터 시작했고 두번째날은 중간중간 행사가 있어 흐름이 끊겼고, 세번째날만 온전히 집중할 수 있는 날이었다. 게다가 마지막 4일째는 13시30분이 발표였다. 즉.. 말이 3박4일이지 사실상 2박3일이나 다름없었다. 개발이라곤 스프링 CRUD게시판 클론코딩..

[크래프톤 정글 5기] 첫 미니 프로젝트[타잔]을 진행하며 배운 것 feat.JWT, jinja2

입소 직후부터 시작해 4일간 밤새워 진행한 프로젝트 Tarzan(타잔)을 드디어 완성하고 발표했다. 정말 힘들었지만 이 짧은 시간에 엄청나게 성장했다. 기능 구현과 배포까지 완료해서, 더 수정할 것도 없다. 3일만에 프로젝트 하나를 완성하였다. 간단한 트러블 슈팅들 1. git 오류 git을 처음 다뤄봤는데, 이와 같은 오류를 만날 수 있었다. 이럴 땐 pull을 먼저 진행한 후 push하면 된다. 2. git 파일 이름 변경 git mv 명령을 사용하지 않고 파일 이름을 변경하면 git에서 해당 파일을 delete된 것으로 인식하고 이름이 바뀐 파일을 새로 추가된 파일로 인식할 수 있다. 이렇게 되면 delete된걸로 인식한 파일은 커밋 추적도 불가할 수 있다. 따라서 git에서 파일 이름을 변경하려면..

[Visual Studio 2022] C언어 소스코드 하나만 실행하는 법, 프로젝트와 솔루션

C언어를 처음 시작하면 가장 먼저 만날 시련이라고 생각된다. 한 프로젝트에 main 함수는 1개밖에 존재할 수 없다고 오류가 뜨고, 다른 프로젝트를 만들어 실행하니 아까 실행했던 코드만 계속 실행되곤 한다. 해결방법은 main 함수의 이름을 바꾸거나, 빌드에서 제외하거나, 프로젝트에서 제외하거나 등등의 방법이 있지만 현업이 아닌 C언어 문법을 처음 학습하는 입장에서는 이 방법이 제일 편리한 것 같다. 바로 시작 프로젝트로 설정하는 것이다. 실행을 원하는 코드가 있는 "프로젝트"를 우클릭 해서 "시작 프로젝트로 설정" 을 누른다. 그러면 해당 프로젝트가 시작 프로젝트가 되며, 굵은 글씨체로 표시된다. 이렇게 설정한 후 Ctrl+F5 ( 디버깅하지 않고 실행 ) 을 누르면 원하는 코드가 실행될 것이다. 이게..

Development/C 2024.02.07

[크래프톤 정글 5기] 최종합격 후기

크래프톤 정글 5기에 최종합격했다. 12월 초 지원서를 내고 입학과정을 처음 시작할 때 자기소개서, 1분 자기소개영상, 입학시험, 면접이라는 4중 나생문에 잔뜩 쫄아 있었지만 결국 또 어찌저찌 해냈다. 그래서 오늘은 정글 입학과정에 대한 후기를 작성해 보고자 한다. 크래프톤 정글 홈페이지 : https://jungle.krafton.com/main 정글의 커리큘럼은 개발자가 스스로 성장할 수 있게 돕는, 컴퓨터공학(전산학)기초에 중점을 두었다. 도구(프레임워크 등)를 사용하는 법을 배우는 게 아닌, 어떤 도구를 사용하더라도 본인의 역량을 뽐낼 수 있도록 하는 것이 정글의 목표라고 생각한다. 스스로 생각하고, 발전하고, 응용하고. 기계마냥 같은 코드를 뽑아내는 게 아닌 다양한 상황에서 다양한 해결 방법을 ..

업적 2024.02.06
728x90
반응형