분류 전체보기 381

2022년 8월 2주차(8/8 ~ 8/12) Weekly I Learned "학습 악재(?)가 많았던 한 주"

지난 한 주 되돌아보기 이번 한 주에는 학습하는데 다소 악재(?)가 많았던 것 같다. 우선 갑작스런 수도권 폭우로 인해 나의 방에 많은 빗물이 새버려 💦 이를 수습하기 바뻤고 가족 내 코로나 확진자가 연이어 발생 💊 하는 등 학습에 집중하기가 힘들었다. 나름대로 이러한 상황을 핑계(?)로 삼아 개인적인 여가 시간을 보내는데 많은 시간을 사용했었던 것 같다. 😅 지난 8월 1주차 역시 알고리즘 문제를 풀이하는데 많은 시간을 소요했었는데, 어쩌다보니 이번 한 주 역시 알고리즘과 많은 시간을 보내게 되었다. 😅 이와 더불어 자바의 정석을 통해 그동안 자바 프로그래밍을 하면서 산재되있었던 개념들을 정리하는 시간을 가졌고 이와 더불어 연결 리스트를 자바로 구현하는 작업에 착수하기 시작했다. (프로젝트는 언제 시작..

[프로그래머스] 후보키 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 해당 문제는 특정 테이블 형태의 데이터가 주어졌을 때 유일성과 최소성을 만족하는 후보키의 개수를 요구하고 있습니다. 접근 방법으로는 우선 백트래킹을 통해 모든 키에 대한 경우의 수를 구하도록 했습니다. 이때 키의 칼럼 수는 최소 1개에서 최대 릴레이션 상 전체 칼럼 수의 개수(n)와 같습니다. 1개부터 n개까지 순차적으로 백트래킹을 하면서 경우의 수가 만들어지면 해당 키에 대해 유일성과 최소성을 검증(verify 메서드 호출)하도록 했습니다. // ... boolean[] visited;..

[백준 - 25332] 수들의 합 8 - Java

문제 설명 25332번: 수들의 합 8 $A = \{1, 2, 3\}$, $B = \{1, 3, 2\}$로, 조건을 만족하는 $i, j$ 쌍은 $(1, 1), (2, 3), (1, 3)$의 세 가지이다. $A_1$ = $B_1 = 1$ $A_2 + A_3 = B_2 + B_3 = 5$ $A_1 + A_2 + A_3 = B_1 + B_2 + B_3 = 6$ www.acmicpc.net 접근 방법 해당 문제는 원티드 주관 코딩테스트 대회 2022년 2회차의 마지막 문제로서 단순하게 해결할 수 있어 보였지만, 시간 제한 등의 이슈로 다소 깐깐했었던 문제였습니다. 특히, 이 문제의 경우 백준 2015번 문제 '수들의 합 4'과 매우 밀접한 관련이 있는 문제이기에 해당 문제를 풀기 앞서 '수들의 합 4' 문제를 ..

Algorithm/BOJ 2022.08.11

[백준 - 25331] Drop 7 - Java

문제 설명 25331번: Drop 7 Drop7은 7×7 크기의 격자에서 진행하는 싱글 플레이어 게임이다. 처음에는 격자가 비어있고, 플레이어는 매 턴마다 1 이상 7 이하의 정수 하나가 적힌 공을 받아 7개의 열 중 한 곳에 떨어뜨려야 한 www.acmicpc.net 접근 방법 해당 문제는 원티드 주관 코딩테스트 대회 2022년 2회차 문제로서 당시 시간적 여유가 있었음에도 불구하고 문제 해결을 위한 아이디어가 떠오르지 않아 제대로 접근조차 하지 못했었던 문제였습니다. 그래서 아쉬운 마음에 코딩테스트 이후에 따로 시간을 내서 재도전 해보았습니다. 우선 문제를 해결하기 위해 접근했었던 방법을 단계별로 나타내면 다음과 같습니다. 1. 각 열별로 공 떨어트리기 - 떨어뜨린 공은 이미 배치되어 있는 공 바로 ..

Algorithm/BOJ 2022.08.08

2022년 8월 1주차(8/1 ~ 8/5) Weekly I Learned "알고리즘과 긴밀했던 한 주"

지난 한 주 되돌아보기 벌써 8월이다. 마스터즈 코스를 수료했으닌까 당분간은 휴식을 취해도 되겠지라는 핑계가 무색할만한 시기가 온 것 같다. 지난 한 달(7월)을 되돌아 보면 하루하루를 보내면서 "그래도 6개월 고생했으닌까 이 정도는 뭐"하는 마음으로 학습에 임했었던 것 같다. 이제는 다소 안일한(?) 생각은 접어두고 학습에 몰입해야할 시기가 오지 않았나 싶다. 8월의 첫 주간 학습했었던 것들을 되돌아 보면 사실상 '자바 기초 학습'과 '알고리즘 학습'으로 나눌 수 있을 것 같다. 나 같은 경우에는 어떤 하나에 꽂히면 다른 것에 잘 손이 안가는, 일종의 멀티 태스킹이 안되는(?) 스타일이다. (운영체제로 따지면 일종의 일괄작업 시스템 같은..?) 그래서 CS나 스프링 등의 다른 영역들에 대한 학습은 미진..