목록분류 전체보기 (150)
forDevLife
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 주어진 직사각형 범위를 모두 1로 채운다. 2. 주어진 직사각형보다 1씩 작은 범위를 모두 0으로 채워 속을 비워낸다. 3. 테두리를 따라서 아이템에 도달할 때까지 BFS를 진행한다. 고민 만약 좌표 사이즈를 1로 하게되면, BFS시 명확하게 테두리를 구분할 수 없다. 아래 예시는 문제에서 주어진 예시 2번의 테두리를 매핑(위에서 언급한 접근 1번까지 수행)한 것이다. 이제 테두리보다 1만큼 작은 위치의 테두리를 모두 비우면 다음과 같다. (접근 2를 통해 0으로 변경) 이 상태에서 BF..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. combination으로 경우의 수를 만들고 교점을 추출한다. 2. 해당 교점이 정수라면 result에 넣는다. 3. result에서 x_min, x_max, y_min, y_max를 뽑고, 해당 사이즈 만큼 배열을 만들어 '.'로 초기화 한다. 4. result를 하나씩 반복하며 일치하는 좌표에 '*'를 넣는다. 코드 def solution(line): result = [] for i in range(0, len(line) - 1): A, B, E = line[i] for j in ra..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1) 플로이드 워셜 - 실패 처음엔 모든 노드 간 최단 거리를 알아야 한다고 생각되어 플로이드 워셜로 접근하고, costs를 다시 탐색하면서 갱신된 테이블과 값이 일치할 경우에 result에 더하는 방식으로 접근했다. 하지만 이럴 경우 사이클이 있을 때 중복되어 값이 더해지는 경우가 발생한다. 아래와 같은 그래프가 있을 때 모든 노드를 연결하기 위한 경로는 빨간색 동그라미인 1, 2만 있으면 된다. 하지만 위와 같이 접근하면 3으로 접근하는 경로도 3으로 주어져있기 때문에 더해지게 되므로 오..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음에는 현 index에서 가장 가까운 위치를 양쪽에서 찾고 그 위치로 이동하는 방식으로 접근하였으나, 수많은 테스트케이스에서 실패했다. 무조건 가까운 쪽을 선택하는게 최선이 아닌 케이스들이 존재하기 때문이다. 예를 들어, ABABAAAAABA를 살펴보자. 위 알고리즘으로 접근하면 최초 [0]에서 [1]위치의 'B'가 제일 가깝기 때문에 여기 먼저 접근하게 된다. 하지만 실제로는 왼쪽으로 먼저 가서 'B'를 바꾼 후에 다시 오른쪽으로 와야 최소 경로가 된다. 즉, 매 순간 왼쪽 혹은 오른쪽으로..
먼저 Extension에 대해 몇 가지 구현된 예시를 알아보고, 간단히 데이터베이스를 롤백하는 Extension을 직접 만들어보도록 하자. 실습 코드 https://github.com/leejohy-0223/junit_study GitHub - leejohy-0223/junit_study Contribute to leejohy-0223/junit_study development by creating an account on GitHub. github.com 1. Extension 이란? JUnit 5에 추가된 extension(FunctionalInterface)를 통해 Test class, method를 확장할 수 있다. 동작 방식은 테스트의 이벤트, Life Cycle에 관여하게 되며, ExtendW..
1) 등록한 ACCESS_KEY를 찾을 수 없는 문제 CodeDeploy를 이용해 배포를 하는 도중, S3 업로드 기능을 추가한 후 아래와 같이 yml에 추가했다. cloud: aws: credentials: access-key: ${S3_ACCESS_KEY} secret-key: ${S3_SECRET_KEY} s3: bucket: ${S3_BUCKET_NAME} region: static: ${S3_REGION} stack: auto: false 그리고 나서 EC2 환경에 해당 환경 변수들을 .bashrc에 등록 & echo로 체크한 후 배포했다. 이 때 아래 문제가 발생했다. 원인 파악 배포된 jar를 EC2에서 실행할 때는 문제가 없었다. 따라서 CodeDeploy로 script 실행 중에 문제가 ..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import heapq def solution(food_times, k): # 전체 음식 시간 보다 k가 크다면 더이상 먹을게 없는 것이기 때문에 -1을 반환한다. if sum(food_times) k보다 작거나 같을 때만 수행한다. cur_sum = 0 before_food_count = 0 all_food_count = len(q) # 지금까지 소모된 시간 + (이제 소모될 시간)이 k보다 작을 때만 해당음식을 여기 반복문에서 한꺼번에 Pass시킬 수 있다. while cur_sum + (..
문제 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하시오 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어진다. (1
말로만 듣던 해커톤에 참가해보았다..! 여러 기술 블로그들을 돌아다니다 보면 어렵지 않게 찾을 수 있는 '해커톤 후기'를 보고, 뭔가 개발 인싸들만 할 수 있는 대외활동이구나~ 정도로만 생각했었는데 작년에 코드스쿼드를 수료하신 Jane님이 올해 GDG 해커톤 일정을 공유해 주셔서 정확히 어떤 활동인지 모른 채 일단 지원해 보게 되었다. 해커톤[hackathon; 해킹(hacking) + 마라톤(marathon)]은 소프트웨어 개발 분야의 프로그래머, 관련된 그래픽 디자이너, 프로젝트 매니저 등이 정해진 시간 내에 집중적으로 작업하여 결과물을 만들어내는 소프트웨어 관련 이벤트이다. 해킹이라는 무시무시한 단어가 주는 인상과는 별개로 hack은 '만들다, 파고들다'라는 의미를 가지고 있으며, 마치 마라톤을 하..
이번 과제에서 위와 같은 이슈 조회를 위한 한 방 쿼리 작성을 시도했다. 특이사항으로는 label이 여러 개가 붙을 수 있다는 점이다. 아래에서 파란색은 조인된 관계를 의미하며, 빨간색은 DTO에 매핑될 컬럼을 의미한다. Issue와의 관계를 분석하면 다음과 같다. Issue : user = N : 1 Issue : milestone = N : 1 Issue와 label은 N:M(다대다) 관계이기 때문에 중간에 attached_label 테이블을 통해 관계를 1:N, N:1로 풀었다. Issue : attached_label = 1 : N attached_label : label = N : 1 한 방 쿼리를 위해서는 N : 1, 1 : N 관계 모두 FetchJoin을 통해 한 번에 가져올 수 있다. 하..