파이썬 알고리즘 2주차 : 탑

1.개발 진행 및 완료상황 2주차 파이썬 알고리즘 공부 스택 문제 1회독 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 문제 2493번을 파이썬으로 풀었다. 스택과 관련된 문제로 스택(파이썬에선 list지만)을 정방향으로 볼지(왼쪽부터), 반대방향으로 볼지(오른쪽)에 관련된 문제였다. 주목한 원소가 다음 원소와의 크기 비교를 통해 스택에서 pop을 할지 push를 할지 관련된 문제였는데, 경우에 따른 분류가 힘들었다. 위와 같이 정렬한 자료구조를 역순으로 바라보는 문제가 많았는데 정렬을 뒤바꾸는 것과 읽는 방향을 바꾸는 방법이 있었다. 때에 따라 사용하기 위해 둘 다 알아놓아야겠다. 밑의 첫번째는 오름차순 정렬, 두번째는 내림차순 정렬이다. list.sort() list.sort(reverse=True) ...

2023년 3월 11일 · 2 분 · 배준수

파이썬 알고리즘 2주차 : 이분탐색, 분할정복 공부

1.개발 진행 및 완료상황 2주차 파이썬 알고리즘 공부 이분탐색 ,분할정복 개념정리 및 문제 1회독 완료 스택 개념정리 및 난이도 하 문제 1회독 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 문제들 중 ‘괄호’관련된 문제에서 어려움을 겪었다. 사실 단순히 완성된 괄호인지를 판별하는 문제는 스스로 만든 코드로 완성되었는데, 이 코드를 이후 계산과 연관된 문제에 적용하니 되지 않았다. 코드를 다시 한번 점검해볼 필요성을 느꼈다. 이분탐색 문제는 변수를 설정함에 따라 목표에 달성했는지, 목표를 달성하면서 변수의 최댓값이나 최솟값을 설정하는 문제가 많았다. pl,pr,pc를 index값으로 설정할 것인지 원솟값으로 설정할지 잘 생각해야 한다. ...

2023년 3월 10일 · 1 분 · 배준수

파이썬 알고리즘 1주차 : 시험

1.개발 진행 및 완료상황 1주차 파이썬 알고리즘 시험 종료 2주차 파이썬 알고리즘 시작 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 날짜와 요일, 각 달의 일 수가 주어지고 입력한 날짜의 요일을 출력하는 프로그램이 문제로 나왔다. 2월이하(2월은 28일까지), 37월(7,8월은 둘다 31일), 812월 로 조건을 나누어서 1월1일부터 몇일 후인지 출력되도록 하였다. 그 후 7로 나눠 나머지에 따라 그에 알맞는 요일이 출력되도록 구성하였다. 접근 자체는 좋았으나 너무 코드가 길어진 듯 하다. 복습하며 코드를 간결하게 쓸 수 있는지 고민해봐야 겠다. ...

2023년 3월 9일 · 1 분 · 배준수

파이썬 알고리즘 1주차 : 정렬에 관한 공부

1.개발 진행 및 완료상황 1주차 Python Algorithm 문제풀이 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 Quick sort를 이용하여 주어진 수를 오름차순으로 정렬하고 싶었다. 교과서로 Quick sort가 가장 빠르다고 읽어서, 그냥 가장 좋은 기능이겠거니 생각하였다. 코드도 복잡해지고 잘 안되어서 단순선택 정렬로 했다. 주어진 정수 정렬하여 출력하는 문제에서 메모리가 적게 주어졌다. 다른 문제들처럼 하니 메모리 초과 문제로 오답처리 되었다. 입력되는 수의 개수는 10만개 이상이였지만 주어지는 수의 크기는 1만 이하였기에 분명히 겹칠 가능성이 있을거라 생각했다. 그래서 1만1개짜리 리스트(인덱스와 그 위치가 나타내는 수를 일치시키기 위해서)를 만들어 각 수가 나올때마다 그 수를 인덱스로히는 리스트의 원소를 1씩 늘려준 후 각 인덱스값을 원소만큼 출력하도록 반복함수를 구성하였다. ...

2023년 3월 8일 · 2 분 · 배준수

파이썬 알고리즘 1주차 : 재귀함수

1.개발 진행 및 완료상황 1주차 Pyton Algorithm 문제 진행중(재귀함수) Python Algorithm 5강 학습 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 여러 줄의 input값을 지정하는 경우 이 코드를 이용해 해결하였다. 첫째줄에는 2개, 둘째줄은 셋째줄부터 input 줄의 갯수였다. import sys data = [] for i in range(2): data.append(list(map(int,sys.stdin.readline().split()))) 새로 배운 내용 재귀함수 set, pos의 특성 제곱근 (3**2) 리스트의 원소를 하나의 문자열로 만들기(join) 참고할 만한 레퍼런스들 자료구조와 함께 배우는 알고리즘 입문 파이썬편(BohYoh Shibata 지음, 강민 옮김, 이지스 퍼블리싱) ...

2023년 3월 7일 · 1 분 · 배준수

파이썬 알고리즘 1주차 : 기초 문제

1.개발 진행 및 완료상황 1주차 Python Algorithm 기초 문제 완료 1주차 Pyton Algorithm 문제 진행중 Python Algorithm 1,2강 학습 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 data 라는 list에 원소를 추가할 때 문제가 발생했다. 위의 코드는 new_data가 nonetype이 되어버려 뒤 코드에서 말썽을 일으켰다. 밑에 방식으로 해야 data가 원소만 추가한채로 유지되어 이후에도 계속 사용할 수 있다. new_data = data.append(N) data.append(N) 오늘 푼 문제들 중 소수(prime number) 다루는 문제가 많았다. 교과서에서는 소수 2,3을 list에 넣고 자신보다 작은 소수에게 나누어 떨어지지 않으면 소수라는 개념으로 반복문의 계산횟수를 줄였다. 백준 문제풀이에서는 딱히 사용할 일이 없었다. 그저 주어진 값이 소수인지만 중요해서 2부터 자신의 제곱근보다 작은 수까지 나머지 값이 0이 아닌지 반복해서 찾도록 코드를 구성했다. sys.stdin.readline()함수를 이용해 python의 여러 줄의 input값을 이용하는데 어려움이 많았다. 특히 표본의 갯수 N을 두번째 줄에 넣는 문제는 정말 힘들었다. 밑 코드를 이용해 두 줄만 읽어내고 첫 줄에서 두개, 두번째 줄에서 표본 갯수에 관한 값을 찾아냈다. import sys data = [] for i in range(2): data.append(list(map(int,sys.stdin.readline().split()))) N = data[1][0] X, Y = data[0][0], data[0][1] ...

2023년 3월 6일 · 2 분 · 배준수

0주차 미니 프로젝트 종료

1.개발 진행 및 완료상황 0주차 미니프로젝트 완료(소모임 생성 및 참여 웹페이지) 1주차 파이썬 기초 알고리즘 공부 중 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 소모임 등록 후 중복참여 방지 기능 : 모임 등록시 생성자가 포함된 참여 user ID가 담긴 table이 생성되도록 하였다. 문자열’g’와 1부터 증가하는 숫자(num += 1)를 결합하여 제목으로 부여하여 제목을 고유ID로 쓸 수 있도록 하였다. 모임 생성시 모임 정보에 이 제목도 저장했고 유저 참여시 이 table에 본인 ID가 있는지 조회하도록 만들었다. ...

2023년 3월 5일 · 4 분 · 배준수

처참한 시작

2023년 2월 27일 월요일, 카이스트 문지캠퍼스에 도착했다. 주변에서 들은 이야기들도 있고, 이전 기수분들이 인터넷에 썼던 글들도 읽어봤기에 힘든 과정이 될 것은 알고 있었다. 그러려니 하는 마음으로, 도착해서 주위를 둘러보며 5개월을 지낼곳을 둘러봤다. 도착하는 사람들을 보며 나만 짐이 너무 많은가, 내가 나이가 많은 편인가 쓸데없는 생각만 하고 있었다. SW사관학교 정글 이전에 내가 한 코딩 경험은 딱 한번이었다. 학교에서 생물통계학 시간에 교수님이 가르쳐줘서 한 학기 동안 쓰던 R이 전부였다. 사실 그 수업은 이전학기 수업인 유전학을 바탕으로 진행되는 듯 했는데, 난 유전학을 듣지 않았기에 관심도 흥미도 없었던 R을 배우랴, 유전자와 관련한 논문을 해석하랴 정신을 못차렸다. 학기 중반부턴 그저 포기하고 F만 면하길 바라며 출석했다. 딱 한번뿐인 경험이었지만 내 인생의 처음이자 마지막 코딩공부라고 생각했었다. ...

2023년 3월 4일 · 6 분 · 배준수