전체 글 30

[pymyrep] python pep8, docstring

7월부터 9월까지 오픈소스 컨트리뷰션 아카데미(OSSCA)에 참가했다. 참가한 프로젝트는 python-mysql-replication으로, mysql에서 replication(복제)을 할 때 replica(slave) 대신 Python을 통해 변동 사항 등을 조회할 수 있도록 하는 오픈소스이다. 좀더 명확한 설명이 있는 것 같지만... 일단 replica(slave) 대신 python이 mysql db의 변화를 사용자에게 전달해주도록 만드는 패키지라고 이해하고 프로젝트에 참여했다. GitHub - julien-duponchelle/python-mysql-replication: Pure Python Implementation of MySQL replication protocol build on top of..

프로젝트 2023.10.03

[구름톤 챌린지] 2주차 학습 일기 모음(2)

3. 통증 N = int(input()) cnt = 0 while N >= 14: cnt += (N // 14) N %= 14 while N >= 7: cnt += (N // 7) N %= 7 while N >= 1: cnt += (N // 1) N %= 1 print(cnt) 그리디 문제이긴 했는데 너무 쉽게 풀렸다... 그냥 문제 그대로 최대한 나눠주면 답이 나온다. 그리디로만 문제가 나왔을 때는 난이도가 높은 경우를 잘 못 본 것 같다. (잘 몰라서 그런 것 같지만...) 그래도 간단한 코드로 풀려서 기분이 좋았다...! 4. 폭탄 구현하기 (2) 5. GameJam 두 문제는 각각 완전탐색과 시뮬레이션 문제인데, 기숙사 입주 이슈로 풀 시간이 없었다ㅠㅠ 다음 주도 시간이 없긴 한데 그래도 시간을 ..

코딩테스트 2023.08.27

[구름톤 챌린지] 2주차 학습 일기 모음(1)

이번 주에는 기숙사 입사 때문에 너무 바빠서... 목/금 문제는 제대로 풀지 못하고 제출만 했다. 시간 내서 풀어봐야겠다... 1. 문자열 나누기 from itertools import combinations # 입력 받기 N = int(input()) S = input() # 조합으로 모든 부분문자열 구하기 cnt = [i for i in range(N)] cnt_comb = list(combinations(cnt, 3)) str_comb = [] for i in cnt_comb: comb = [S[i[0]:i[1]], S[i[1]:i[2]], S[i[2]:]] if "".join(comb) == S: str_comb.append(comb) # 모든 부분문자열 기반으로 P 구하기 P = sorted(s..

코딩테스트 2023.08.27

[구름톤 챌린지] 1주차 학습 일기 모음(2)

[구름톤 챌린지] 1주차 학습 일기 모음(1) 구름톤 챌린지를 신청했다! 이번 2학기에는 코딩테스트 준비를 위해 알고리즘 문제를 꾸준히 매일 하나씩은 풀고 있는데, 구름톤 챌린지에서도 매일 한 문제씩 풀면서 여러 혜택을 받을 수 있어 starcat37.tistory.com 앞 포스팅에 이어서 작성한다. 4. 완벽한 햄버거 만들기 (08/17) # 입력 받기 burger = [] N = int(input()) *burger, = map(int, input().split(" ")) # 맛의 정도가 가장 높은 값의 인덱스 구하기 (top) top = burger.index(max(burger)) # 맛이 완벽할 경우의 값 result = sum(burger) # 순회하면서 top을 기준으로 오름차순-top-내..

코딩테스트 2023.08.19

[구름톤 챌린지] 1주차 학습 일기 모음(1)

구름톤 챌린지를 신청했다! 이번 2학기에는 코딩테스트 준비를 위해 알고리즘 문제를 꾸준히 매일 하나씩은 풀고 있는데, 구름톤 챌린지에서도 매일 한 문제씩 풀면서 여러 혜택을 받을 수 있어 같이 시작하게 되었다. 첫 주여서 그런지 아니면 구현이라 그런지 난이도가 그리 높지는 않은데, 다음 주부터는 어려워질 것 같다는 생각이 든다. 각 문제별로 글을 올리고, 이 곳에 링크로 올릴 생각이다...! 1. 운동 중독 플레이어 (08/14) W, R = map(int, input().split(" ")) print(int(W * (1 + R / 30))) 첫 문제라서 그런가... 그냥 문제 그대로 구현하면 되는 문제였다. 5분도 안 걸리고 풀었다. 2. 프로젝트 매니징 (08/15) N = int(input()) ..

코딩테스트 2023.08.19

[백준 20920] 영단어 암기는 괴로워

1. 링크 https://www.acmicpc.net/problem/20920 2. 문제 설명 (1) 문제 화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. 자주 나오는 단어일수록 앞에 배치한다. 해당 단어의 길이가 길수록 앞에 배치한다. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. (2) 입력 첫째..

[인프콘 2023] 인프콘 회고

인프콘 다녀왔다! 근데 글을 끝까지 쓸 힘이 없어서... 일단 조언 들은 내용들만 정리하려고 한다. 나머지는 내일... 수강신청하고... 보충해서...적자... 1. 이력서 세션 2곳 중 1곳은 무조건 합격하는 개발자 이력서 만들기 지소라 - 백엔드 개발자 경험담, 후기, 레퍼런스로 받아들이기 가져야 하는 마음가짐: 낙담하지 않기 중꺾마!! 1. 개발자 이력서는 처음인데요 비개발자: 기승전결, 소프트스킬 강조… 개발자: 다름…! 이력서보다는 에세이에 가까운 초안 2. 피드백 그 무한굴레 1) 1차 피드백 이력서가 너무 말랑말랑하다 → 이력서는 가장 dry한 문서, 전문적이어야 함 이력서의 모든 문장에서 쓸데없는 것이 있으면 안된다 → Why, How, What이 한 문장에 반드시 있을 것 내용이 길다, ..

생각 2023.08.15

[Redis] connect-redis TypeError: require(...) is not a function 해결

asku 프로젝트 배포 설정하다가 불현듯 과거에 고생했던 게 생각나서 적어놓는 오류. Node.js 교과서 개정 3판: 15.1.8 connect-redis - 5더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.thebook.ionode.js 교과서 등 23년 2월 정도 까지의 코드에는 connect-redis 설정을 위해 다음과 같은 코드를 사용한다.const RedisStore = require('connect-redis')(session);그러나 현재는 위와 같은 코드를 사용하면 다음 에러가 발생한다.const RedisStore = require('connect-redis')(session); ^ TypeError: require(...) is not a fun..

웹/BackEnd 2023.08.10

[COSE403] 3주차 연습 풀이와 설명 모음

1094. [S5] 막대기 # 1094 X = int(input()) sticks = [64, ] while True: if sum(sticks) == X: break else: shortest = min(sticks) sticks.remove(shortest) half = shortest // 2 sticks.append(half) sticks.append(half) if sum(sticks) - half >= X: sticks.remove(half) print(len(sticks)) 문제 설명이 좀 이해가 안 돼서 여러 번 읽어본 문제다. 다만 이해만 되면 그대로 옮기기만 하면 된다. 문제를 잘 읽자! 1769. [S5] 3의 배수 # 1769 X = int(input()) cnt = 0 def sw..

[COSE403] 2주차 연습 풀이와 설명 모음

5648. [S5] 역원소 정렬 # 5648** import sys nums = "".join(list(map(str, sys.stdin.readlines()))).split() # 입력 문제: re.split은 구분자 사이에 아무것도 없을 경우 빈 문자열이 들어감.. reverses = [] for i in range(1, int(nums[0])+1): reverses.append(int(nums[i][::-1])) #문자열 뒤집기: str[::-1] for j in sorted(reverses): print(j) # cnt, *nums = sys.stdin.read().split() # for i in range(int(cnt)): # nums[i] = nums[i][::-1] # nums = lis..