파이썬 알고리즘 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 분 · 배준수