본문 바로가기

개발32

[2021 카카오 신입 공채][Javascript] 메뉴 리뉴얼 완전 제 멋대로 풀어봤습니다. 문제에 워낙 조건과 요구사항이 많지만... 제 생각에 문제 풀이에 중요한 조건은 다음과 같습니다. 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함 즉, 간단하게 말하면 'AB'처럼 문자열 길이가 2 이상이고, 'AB'가 주문된 횟수가 2 이상일 때만 포함시키면 되겠습니다. 코스 요리 조합이 나올 수 있는 경우의 수를 combination을 통해서 다 찾았습니다. 그리고 Map에 key로 메뉴의 조합을, value로 주문 횟수를 넣어 저장합니다. 이차원 배열 courseArr을 만들어 courseArr[n][0]에는 메뉴 조합을, courseArr[n][1]에는 주문 횟수를 저장합니다.. 2021. 4. 25.
[프로그래머스][Javascript] 타겟 넘버 이 문제는 조건 서술을 매우 빈약하게 해 놓아서 푸는데 어려움이 있었다. 문제에서 제대로 설명이 안 된 조건은 바로 배열에 주어진 순서대로 연산이 이루어진다는 점이다. 예시 케이스도 [1, 1, 1, 1, 1] 뿐이라 이 조건이 전혀 설명이 되지 않는다. 풀이는 재귀를 이용했다. 지금까지 더해진 수를 sum 변수에 저장하고, 이번에 연산할 수가 sum에 더해진 것을 added, 뺀 것을 subbed에 저장했다. index을 1씩 늘려가며 recur 함수를 반복한다. index가 배열 끝에 달했을 때, added나 subbed가 원하는 target과 동일할 경우가 정답 케이스이다. 프로그래머스에는 이렇게 조건 설명이 허술한 문제들이 좀 있는 것 같다. 주의해야 할 듯.. 1 2 3 4 5 6 7 8 9 1.. 2021. 4. 25.
[프로그래머스][Javascript] 체육복 첫 번째 for문으로 문제에서 주어진 조건대로 체육복의 개수를 저장한다. reserve와 lost에 모두 들어있는 경우도 생각해야 한다. 두 번째 for문으로 최대한 많은 사람이 체육복을 입을 수 있도록 처리한다. 체육복이 2개이고 앞사람이 체육복이 없는 경우만 체육복을 전달한다. 그 후 뒷사람도 동일한 코드를 반복한다. 문제 조건 상 인접한 앞, 뒷사람에게만 체육복을 나눠줄 수 있다. 이 조건이 바로 이 문제를 greedy하게 풀어도 되는 조건이다. 체육복이 0이 아닌 사람의 수를 계산하면 끝~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 function solution(n, los.. 2021. 4. 25.
2. AWS EC2에 Django 배포하며 생긴 문제들 (PostgreSQL) 지금까지 로컬에서만 작업을 했는데, 슬슬 배포할 필요성을 느껴서 일단 AWS 프리티어 EC2에 배포하기로 했습니다. 키페어를 발급받고, 사용할 포트들을 인바운드 규칙에 추가했습니다. ssh를 통해서 인스턴스에 접속하고, github 저장소를 clone하는데 까지는 문제 없이 진행했습니다. 문제 1. 문제는 pip를 통해서 requirements들을 설치하려는데 발생했습니다. ERROR: Could not find a version that satisfies the requirement psycopg2==2.8.6 ERROR: No matching distribution found for psycopg2==2.8.6 좀 헤매다가 스택오버플로우에서 구원을 받았는데.. sudo apt-get install p.. 2021. 3. 28.
[Django] model object를 clone, copy 하는 법 이미 생성된 object들을 동일하게 복사해 생성시켜야 할 때가 있습니다. Django 공식 문서를 참고해서 해결 해 보겠습니다. 가장 기본적인 방법은, 해당 object의 pk를 None으로 설정하는 방법입니다. blog = Blog(name='My blog', tagline='Blogging is easy') blog.save() # blog.pk == 1 blog.pk = None blog.save() # blog.pk == 2 해당 pk가 None으로 설정된 instance는 DB에 새로운 레코드로 생성되며, pk를 제외한 나머지 모든 필드는 기존의 값이 복사됩니다. 이번에는 상속된 model을 clone하는 방법입니다. class ThemeBlog(Blog): theme = models.Char.. 2021. 2. 14.
2020 IBM Call for Code 해커톤 도전기 시작 이번 학기에 교내 IT 서비스 개발 동아리를 가입하게 됐습니다. 동아리에서 기획, 디자인 포지션을 맡은 친구들과, 개발을 같이 할 같은 과 친구들 두명과 함께 IBM에서 진행하는 해커톤에 참여하게 됐어요. 5인의 팀원 모두 해커톤은 처음이었습니다. IBM의 콜 포 코드는 코로나, 기후 재난 등과 같은 어려움을 코드를 통해 세상에 기여하고, 해결해보자는 취지의 해커톤입니다. 기나긴 아이디어 회의 끝에 저희 팀은 봉사 단체들과 봉사자들을 연결시켜주는 플랫폼을 구상하고 개발에 들어갔습니다. 플랫폼은 안드로이드 앱으로 개발하기로 했습니다. 대략 이런걸 만들고자 했어요 처음 구상한건 더 엄청난 규모였지만.. 정직하게 24시간 안에 개발하기에는 무리가 있어 최종 버전에는 다음과 같은 기능이 포함되어 있습니다... 2020. 8. 3.