(Python) 프로그래머스 - 도넛과 막대 그래프
·
코딩 테스트
지난겨울 카카오 인턴을 지원하면서 이미 풀어보았던 문제였다. 그때는 인접 리스트를 구성해서 실제로 BFS 탐색을 돌리다가 시간 초과로 실패했었다. 이번에는 방법을 달리해서 풀이에 성공했다. 로직 각 노드의 들어오는 간선과 나가는 간선을 구하면 생각보다 쉽게 풀리는 문제다. 각 그래프마다 특정 규칙을 만족시키는 노드가 1개씩 존재한다. 정점은 들어오는 간선이 없으므로 들어오는 간선의 개수가 0이고, 나가는 간선의 개수는 문제의 조건에 따라서 2개 이상이다. 막대 모양 그래프는 이어진 노드중에 1개가 나가는 간선이 없는것이고, 8자 모양 그래프는 나가는 간선이 2개이면서 들어오는 간선은 2개 이상이다. 도넛 모양 그래프는 정점에서 나가는 간선의 개수 - 막대 모양 도형의 개수 - 8자 모양 도형의 개수를 하..
2023 회고
·
회고
어느새 2024년2022 회고를 작성한 지 얼마 되지 않은 것 같은데, 2023년이 지나고 벌써 2024년이 되었다.2023년은 어느 때보다 바쁘고 얻는 것이 많았던 한 해였다.지난 회고에서 효율적으로 성장하고 싶다는 목표를 가졌었는데, 다시 돌아보면 목표의 70% 정도는 달성했다는 생각이 들었다. 코드스쿼드 마스터즈한 해가 시작하자마자 코드스쿼드 마스터즈를 시작하게 되었다.지금까지의 어떤 시간들보다 많이 성장하는 시간이었고, 나 자신에 대한 신뢰가 좀 더 생겼다. 트러블 슈팅을 하다보면 이 문제를 내 능력으로 해결할 수 있을까? 하는 의구심이 들 때가 많다.나는 문제가 쉽게 해결되지 않으면 하루종일 그 문제에 대한 생각을 했다. 밥 먹으면서, 버스에서, 잠자면서, 심지어 다른 동료들과 대화하면서도 문제..
AWS Certified DevOps Engineer (DOP-C02) - Professional 취득 후기
·
AWS
계기2023년도가 끝나가는 12월 29일에 AWS Certified DevOps Engineer - Professional 자격증을 취득하게 되었다. DVA에 합격하고 바로 DOP로 넘어오려고 했는데, 다른 분들과의 커피챗을 진행하며 올해를 되돌아보는 시간을 가지게 되어 12월이 끝나갈 때쯤 취득하게 되었다. 올해 안에 DOP까지 취득하는 것이 목표였고 달성했다! 학습방법DVA에 합격한 50% 쿠폰으로 시험을 등록했는데, 할인을 받아도 19만 원을 지불했다. 가격적으로 부담이 되어서 꼭 한 번에 따야겠다는 생각을 가지고 시험 준비를 했었다. 이번에도 Stephane Maarek 강의를 수강하는것으로 학습을 시작했다. 강의 구성이 SAA, SOP, DVA 강의들에서 필요한 부분만 따와서 합쳐져 있는 형식으..
상속과 합성에 대한 이해
·
Java
내가 상속과 합성에 대해서 처음 들었던 건 약 1년 전이었다. 그때 내 머릿속에 강하게 박힌 멘트는 "상속보다는 합성을 사용해라"였다. 그때는 합성에 대한 내용을 자세하게 이해하지 못해서 그냥 넘어갔고, 막연하게 상속은 좋지 못한 구조의 예시로 기억되곤 했다. 그래서 지금까지 코드를 작성하면서 상속을 직접적으로 사용한 경험이 없었다. 그런데 요즘 오브젝트를 다시 읽기 시작하면서 이전에 크게 생각하지 않고 지나쳤던 상속과 합성 부분을 정리해보고자 한다. 상속이란 상속이란, 슈퍼클래스를 서브클래스가 상속받아 사용하는 것을 말한다. 슈퍼클래스에서 사용된 필드, 메서드를 서브클래스에서도 동일하게 사용하고 확장할 수 있다. 그래서 자연스럽게 상위 클래스의 코드를 재사용할 수 있다는 것이다. 상속 관계는 'Is-a..
2023 우아콘 후기
·
컨퍼런스, 세미나
올해 11월 15일에 그랜드 인터컨티넨탈 서울 파르나스에서 열린 우아콘에 다녀왔다. 저번 인프콘 추첨에 떨어져서 큰 기대를 하지 않고 있었는데, 운이 좋게도 당첨되어서 기쁜 마음으로 갈 수 있었다. 주변에 당첨된 사람이 없어서 혼자 가야 하나 고민하고 있었던 참에 코쿼 FE 포코가 연락을 주셔서 같이 갈 수 있었다. 10시에 맞춰서 파르니스에 도착했는데 참석 등록 대기줄이 길어서 조금 기다렸고, 웰컴 키트를 받을 수 있었다. 개발을 시작하고 이런 큰 컨퍼런스는 처음 참석해 봐서 조금 떨렸지만, 묘하게 흥분되기도 했었던 것 같다. 세션 트랙 D 오프닝노트와 키노트부터 차분하게 들으려고 했는데, 사람이 너무 많아서 들어가지 못하고 있다가 트랙 D에서 중계하는 것을 알게 되어서 트랙 D에서 앉아서 들었다. 우..
(Java) 프로그래머스 - 미사일 요격
·
코딩 테스트
오랜만에 풀어보는 알고리즘 문제였다. 왠지 문제가 그리디하게 접근하면 풀릴것 같아서 시도했더니 한시간만에 풀 수 있었다. 로직 첫번째로 targets 배열을 정렬해야 한다. 어떤 기준으로 정렬하냐가 중요한데, 나는 s를 오름차순으로 정렬했다가 최솟값에 맞지 않는다는 것을 깨닫고 e을 오름차순으로 정렬했다. for문을 돌며 미사일이 날아오면 미사일의 시작지점인 s와 e중 한 지점에서 요격해야 한다. 미사일 하나에 맞춰서 요격을 하고 다음 미사일이 현재 요격 기준에 맞지 않으면 answer를 추가하고 요격 기준을 갱신하는 방식으로 생각하면 된다. 최종 코드 import java.util.*; class Solution { public int solution(int[][] targets) { int answe..
AWS Certified Developer(DVA-C02) - Associate 취득 후기
·
AWS
계기 2023년 10월 31일부로 AWS Developer - Associate 자격증을 취득하게 되었다. 코스스쿼드 마스터즈 후기에서 인프라에 대한 흥미로 자격증을 준비하고 있다고 했었는데 이번에 취득하게 되어서 몹시 기쁘다. 이번 Associate 자격증을 시작으로 올해 안에 DevOps Professional 까지 도전해 보려 한다. 자격증을 준비하며 최초의 목표이기도 했고, 지속적으로 인프라에 대한 관심과 학습을 이어가고 있다는 것에 대한 증명이기도 하기 때문에 DevOps까지는 꼭 취득해야겠다. 올해 여름에 시험비 50% 할인 쿠폰을 받아서 10월 31일까지 꼭 사용해야 했었다. 그런데 나는 이걸 잘못 이해해서 10월 31일까지 시험 등록을 하고 시험 날짜는 그 뒤로 미룰 수 있는 줄 알았는데 ..
Java의 final은 불변성을 보장해주지 않는다.
·
Java
면접 스터디를 준비하며 Java의 불변 객체에 대해서 학습한 내용을 남겨 놓으려 한다. final 키워드는 무엇일까?final 키워드는 클래스, 메서드, 변수, 에 사용되는데 어디에 붙이느냐에 따라 용도가 조금씩 달라진다. 특히 변수나 객체의 필드에서 final 키워드는 조금 특별한 의미를 가지게 된다. 클래스클래스 앞에 final 키워드를 붙인다면 해당 클래스를 상속하는 것이 불가능하다.// 상위 클래스 public final class ParentClass { private int age; } // 하위 클래스 (불가능) public class ChildClass extends ParentClass{ public int age; } 메서드메서드 앞에 final 키워드를 붙인다면 해당 메서드의 오버라이..
코드스쿼드 2023 마스터즈 백엔드 회고
·
코드스쿼드
코드스쿼드 2023 마스터즈를 6월 30일에 수료하게 되었다. 수료 후 회고를 작성하려 했지만, 여러 일정들로 인해 미루다 보니 어느새 3개월 가까이 지나 버렸고 더 이상은 미룰 수가 없어 회고를 작성하게 되었다.마스터즈 시작마스터즈 합격 후 잠깐은 정말 기뻤고, 안도감이 들었었다. 앞이 안 보이는 상황에서 조금은 벗어난 것 같았기 때문이다. 그러나 조금 시간이 지나니 두려운 마음으로 바뀌어 갔다. 마스터즈 6개월 과정이 끝나고도 내가 백엔드 개발자라고 부를만한 실력이 되지 않는다면 어떡할까 걱정되었기 때문이다. 적어도 마스터즈 과정이 끝났을 때 '조금 더 열심히 할걸' 같은 미련이 남지는 않게 해야겠다는 목표를 가지게 되었다. 그래서 시작 전에는 아무것도 하지 않고 쉬면서 에너지를 비축했다. 마스터즈 ..