Python 24

[Lv1. 신고 결과 받기] 풀이 기록

처음 제출한 답뭔가 딕셔너리로 풀어야 될 거 같은데 잘 안떠올라서 for문 덕지덕지로 일단 해결def solution(id_list, report, k): answer = [] matrix = [[0] * len(id_list) for _ in range(len(id_list))] report_count = dict() id_list_len = len(id_list) for i in range(id_list_len): report_count[id_list[i]] = 0 for r in report: reporter, bad_man = r.split(" ") r_index = id_list.index(reporter) b_i..

Python/Programmers 2026.01.20

에라토스테네스의 체

코딩 문제를 풀다보면 소수와 관련된 문제가 나온다. 예를 들어, '자연수 2 ~ 100 범위에서 소수를 출력하라' 라는 문제가 나온다면 prime = [] for i in range(2, 101): flag = 0 for j in range(2, i): if i % j == 0: flag = 1 break if flag == 0: prime.append(i) print(prime) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 위와 같이 반복문을 돌면서 i가 2 이상의 어떠한 값에 나머지 연산을 했을 때 값이 0이 나오는지 체크하면 된다. 하지만 이렇게 코드를 짜면 100,000..

Python 2021.07.20

Django와 MySQL 연동하기

Django에 기본 세팅돼있는 DB는 sqlite3이다. sqlite3의 경우 로컬에서 구동되는 DB이기 때문에 관리 비용, 네트워크 구성 등을 신경쓰지 않아도 되고 작은 크기와 간결함을 장점으로 꼽을 수 있다. 하지만 실제 서비스에 사용하기엔 부하에 방어적이지 못하고 동시에 많은 액세스에 대응하기 어렵다. 따라서 가장 범용적으로 쓰이는 MySQL과 Django를 연동하는 방법을 기술한다. MySQL 설치 방법은 생략하며, 사용한 툴은 MySQL Workbench이다. 1. 필요한 python 패키지를 설치해준다. 2. mysite/config 경로의 settings.py에서 기존 sqlite3 설정을 지우고 연동할 MySQL DB의 정보를 입력한다. - 여기서 USER와 PASSWORD는 기존 설치했던..

Python/Django 2021.07.18

input()과 sys.stdin.readline()의 차이

프로그래머스에서 문제를 풀 땐 크게 느끼지 못했는데, 백준에서 알고리즘 문제를 풀면서 유독 시간 초과 때문에 틀린 적이 여러 번 있어 이를 해결하는 과정에서 사용한 함수의 차이를 기록해놓는다. Python 2.x 두 함수의 차이를 설명하기 전에 Python 2.x 버전에 있던 raw_input()과 input() 함수를 파악해야 한다. Python 공식 문서에선 두 함수를 아래와 같이 설명한다. raw_input([prompt]) If the prompt argument is present, it is written to standard output without a trailing newline. The function then reads a line from input, converts it to a..

Python 2021.07.15

Lv.1-약수의 개수와 덧셈

문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 내 코드 def find(n): cnt = 0 for w in range(2, n+1): if n % w == 0: cnt += 1 return cnt def solution(left, right): result = 0 for n in range(left, right+1): if find(n) % 2 == 1: result += n else: result -= n return result 문제 풀이 find() -> n을 2 이상의 수로 나누었을 때 나머지가 0인 개수를..

Python/Programmers 2021.07.10