늦은 프로그래밍 이야기
230207 TIL (알고리즘, 프로젝트) 본문
알고리즘
최솟값 만들기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
최소값 최대값을 주제로 하는 문제가 많은 것 같다. 하지만 각각의 풀이 방식이 전부 달라서 같은 주제의 문제여도 모두 풀어 보아야 할 것 같다.
이번 문제에서는 주어진 두개의 배열의 정수 원소를 각각 한번씩 서로 곱해서 최소의 값을 반환하는 문제였다. 얼핏 보면 모든 경우의 수를 다 곱해봐야 할 것 같지만, 한 배열의 최소의 값을 다른 배열의 최소의 값과 곱하면 모든 곱한 수를 더했을 때에 최소의 값이 나오게 된다.
import java.util.Arrays;
class Solution {
public int solution(int []A, int []B) {
int answer = 0;
int cnt = 0;
Arrays.sort(A);
Arrays.sort(B);
for (int i = B.length - 1; i >= 0; i--) {
answer += B[i] * A[cnt];
cnt++;
}
return answer;
}
}
따라서 두개의 배열을 오름차순 정렬하여 앞의 원소에 작은 수가 오게 하고, A 배열은 가장 작은 수부터 B 배열은 가장 큰 수 부터 순차적으로 반복하여 서로 곱한 수를 answer에 담아 주었다.
문제가 오래되고 개편되어서 개편전의 다른 사람 풀이만 보이고 개편 후의 풀이는 보이지 않고, 거의 내가 풀었던 방식과 비슷하게 푼 코드 밖에 없어서 다른 사람의 풀이는 가져오지 않았다.
프로젝트
이번 프로젝트는 최종 프로젝트인 만큼 설계를 조금 더 탄탄하게 하고 싶어서 S.A 문서를 하루만에 작성하는 것은 무리라고 생각이 되었고 휘뚜루마뚜루 작성하게 되면 나중에 구현 단계에서 어려움을 겪게 되고 의도했던 방향으로 완성하지 못할 것 같아서 팀원들과의 합의를 통해 기획, 설계 단계에 조금 더 시간을 쓰기로 하였다.
[챌린저스] S.A. 문서
프로젝트 기획서
www.notion.so
어제 작성하지 못한 그라운드 룰을 정하고 코딩 컨벤션, 브랜치 전략, 커밋 메세지 등을 정했다. 어제 마무리 하지 못한 ERD도 추가로 작성하여 마무리 하였다. 어제 생각하지 못했던 이용한 고객의 통계에 대한 기능들도 팀원의 의견을 통해 반영하기로 하고 ERD에 추가하게 되었고, 고민이 많았던 카테고리에 대한 부분도 회의를 통해 어느정도 정리가 되어서 추후 변경될 가능성도 있지만 일단은 ERD를 마무리 짓게 되었다.
S.A.문서 피드백에 대한 수정사항 등을 내일 진행할 예정이고, 피드백에 있던 내용 중 하나인 유스케이스를 팀원들과 함께 작성해보며 프로젝트에 대한 이해도를 조금 더 올리거나 부족한 부분을 캐치 해낼 수 있는 시간을 갖고, 아직 작성하지 못한 API 명세서를 작성하면서 아키텍처에 대한 고민과 아키텍처에 따른 팀원들 간의 역할 분배를 해야 할 것이다.
'내일배움캠프 > TIL, WIL' 카테고리의 다른 글
| 230209 TIL (알고리즘, 프로젝트) (0) | 2023.02.09 |
|---|---|
| 230208 TIL (알고리즘, 프로젝트) (0) | 2023.02.08 |
| 230206 TIL (알고리즘, 프로젝트) (0) | 2023.02.07 |
| 230203 TIL (알고리즘) (0) | 2023.02.04 |
| 230202 TIL (JPA 심화) (0) | 2023.02.03 |