[백준] 1876 - 튕기는 볼링공
·
알고리즘 (PS)/BOJ
문제 설명https://www.acmicpc.net/problem/1876 지름이 20cm 인 볼링공을 너비 105cm 인 레인 위에서 굴린다.볼링공이 구르기 시작한 첫 위치는 레인의 정 가운데 위치이고, 해당 위치에서 x도 각도로 굴린다.굴러간 공은 레인 벽과 부딪히면 입사각과 동일한 각도로 반사되어 튕긴다.볼링공이 구르기 시작한 첫 위치로부터 T 미터 떨어진 곳에 지름 12cm 인 볼링 핀이 있다. 처음 굴리기 시작한 각도 x 와 볼링공과 볼링핀 사이 거리 T 가 주어질 때, 이 볼링공이 볼링핀을 맞히는지 여부를 출력하라.  접근 방법우선 각도에 따라서 공이 여러번 튕길 수 있고, 매번 튕기는 것을 다 시뮬레이션으로 구현하는 것은 너무 복잡해보였다.그래서 수학적으로 문제를 풀 수 있을 것 같아서 태블..
[프로그래머스] 이중우선순위큐
·
알고리즘 (PS)/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 백준에도 똑같은 문제가 있다.전에 프로그래머스 레벨 테스트에서 이 문제를 만났다가 구현에서 막혀서 못 풀었던 기억이 났다.(백준에서도 힘들게 풀었었는데..) 이번에 다시 풀어볼 때는 한번에 잘 풀려서 기분이 좋았다. (옛날 풀이는 기억이 나지 않고 완전히 새로운 느낌으로 풀었다.)이 문제의 핵심은 최소힙과 최대힙을 만들고, 이 둘 사이에 데이터 동기화를 잘 시켜주는 것이다. 먼저 데이터를 추가할 때는 두 힙에 모두 데이터를 추가한다.최솟값을 삭..
[프로그래머스] 시험장 나누기 (2021 카카오 채용연계형 인턴십)
·
알고리즘 (PS)/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/81305# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이진트리를 k개 그룹으로 분할할 때, 각 그룹에 있는 노드가 가진 가중치의 합의 최댓값이 최소가 되도록 하는 문제최댓값이 최소가 되어야 한다는 점에서 이분탐색 (매개변수 탐색) 까지는 어렵지 않게 떠올릴 수 있었으나, 이진트리를 k개로 분할하는 구현에서 막혀서 어려웠다. 처음에는 각 트리에 대해서 누적합을 구하고, 누적합 정보를 기반으로 쪼개는 풀이를 떠올렸다.하지만 이 풀이가 27점 맞고 틀려서 디버깅하다가 반례를 못찾아서 클로드에 물어봤더..
[프로그래머스] 길 찾기 게임 (2019 KAKAO BLIND RECRUITMENT)
·
알고리즘 (PS)/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr x좌표의 상대적인 위치를 이용하여 이진트리의 구성을 파악하고 전위/후위순위 결과를 출력하는 문제처음에는 직접 간선을 연결하고 그래프 순회를 해야하나 생각했는데, '이진트리' 라는 특성상 계속해서 좌/우 구분이 나눠지는 관계를 이용해서 현재 루트 노드가 커버하는 범위를 계속 좁혀나가면서 특정 x좌표의 노드가 현재 노드의 왼쪽/오른쪽 자식인지 판단하도록 하였다.현재 노드의 자식노드인지 판별하는 것은 현재 노드가 커버하는 범위 안에 포함되어 있는지 ..
[백준] 1248 - Guess (G3)
·
알고리즘 (PS)/BOJ
https://www.acmicpc.net/problem/1248어떤 수열의 연속하는 모든 부분수열 ai ~ aj 에 대한 합의 부호값 (+, 0, -) 를 알고 있을 때, -10 ~ 10 사이의 숫자를 사용하여 만들 수 있는 수열을 찾는 문제 처음에는 어떻게 해야할 지 감이 안왔는데, 보통 이렇게 알고리즘이 감이 안오는 문제는 입력 크기를 줄이고 완전탐색으로 풀도록 유도하는 경우가 많다. 이 문제도 수열의 길이가 최대 10으로 -10 ~ 10 까지 숫자 10개를 모두 시도해보면서 풀 수 있다.그렇다고 정말 나이브하게 완탐으로가면 21^10 이라는 경우의 수를 체크해야 한다.하지만 모든 부분수열의 ai ~ aj 부호값을 모두 만족해야 하는점에서 경우의 수를 치다보면 체크할 경우의 수가 확 줄어든다는 것을..
JAVA 값 객체의 동등 비교 ('==' 과 equals() 의 차이)
·
WEB(BE)/Spring & Spring Boot
개발하다가 코드 리뷰를 받으면서 들었던 의문점엔티티 필드에 값 객체가 존재하고, 외부에서 값 객체가 주어질 때, 해당 값 객체의 값과 엔티티가 갖고있는 값 객체의 값이 같은지 판별해야 하는 메서드를 작성할 일이 생겼다. 나는 단순하게 값 객체의 필드를 하나 하나 꺼내서 비교하는 메서드를 그냥 작성했는데, 리뷰로는 `equals()` 메서드를 사용하면 된다는 리뷰를 받았다. 코드를 작성할 땐 막연히 `equals()를 사용하면 참조비교하겠지?` 정도로만 생각해서 하나씩 세부 필드를 꺼내서 비교하는 코드를 작성했는데, 그 차이점을 직접 비교해보려고 한다. GPT 가 알려준 것GPT는 값 객체를 비교할 때 equals 메서드를 오버라이딩 하는 것을 추천하고 있다.구글링 해봤을 때도 다른 블로그들이 모두 비슷하..
2025년 2월 회고
·
자기계발/회고 & 생각 정리
2025년 2월을 되돌아보면서 1년 목표를 세웠던 것 중 1달동안 얼마나 이루었는지 되돌아보려고 한다.1월 회고를 작성하고나서 2월을 보내니 1월보다 더 의식적으로 목표를 생각하면서 지내게 된 것 같다.그래서 개강 후에도 바쁘더라도 1달에 1번씩은 꼭 회고를 작성해야겠다는 생각이 들었다.  진로와 관련된 목표1. 전공 성적 A+ 유지전공 관련으로 졸업프로젝트 주제를 확정하고 분반 배정까지 받았다.이번 졸업프로젝트 주제는 '한글 SQL 데이터베이스 만들기'로 확정되었다.사실 한글 SQL은 데이터베이스 만들기에 변형을 주기 위한 요소일 뿐이고, 이 프로젝트의 주 목적은 데이터베이스를 구성하는 여러 요소를 간단하게나마 직접 구현해보면서 DB 관련 CS지식을 코드로 체화해보는데 그 목적이 있다.아직 졸프 관련으..
2025 블레이버스 MVP 해커톤 후기 (feat. 챌린저상)
·
자기계발/대외활동
https://event-us.kr/blaybus/event/97293 2025 블레이버스 MVP 개발 해커톤 - 이벤터스초기 창업 팀의 아이디어를 기반으로 기획/디자인/개발 직군 팀을 구성하여 웹버전 MVP를 구현하는 해커톤입니다.event-us.kr 같은 동아리 친구에게 같이 하자고 권유받았는데 백엔드 직군 마감이라서 아쉽다고 생각하던 와중 알고보니 사전 팀을 짜서 참여하는 건 괜찮다고 해서 지원 마감일에 동아리 사람 4명이서 함께 나가게 되었다. 2월 9일 해커톤 OT 및 팀 빌딩, 2월 10일 ~ 2월 19일 개발 진행, 2월 20일 파이널데이로 진행되었다.  해커톤 OT (2/9)이 해커톤은 초기 창업팀의 사업 아이디어를 기반으로 기획자가 아이디어를 더 발전시켜서 실제 동작하는 작은 MVP를 만..
2025년 정기 1회 정보처리기사 필기 합격 후기 (feat. 1일 벼락치기)
·
자기계발/자격증
어제 정보처리기사 1회 필기 시험을 보고 왔다.가채점 결과는 86점으로 합격하였다.여행과 프로젝트 일정으로 인해 하루 전날에 벼락치기로 공부했는데, 필기 난이도는 전공생 기준으로 어렵지 않아 다행히  합격할 수 있었다. 먼저 나는 컴퓨터공학 3학년까지 수료하여 DB, 네트워크, 컴퓨터구조, 운영체제를 수강했고, 아직 소프트웨어공학은 수강하지 않은 상황이었다. 정보처리기사는 개발방법론, 디자인패턴, 소프트웨어 설계 및 성능 테스트 / 평가 방법, DB, 자료구조, 운영체제, 네트워크, 소프트웨어공학, 간단한 프로그래밍 언어 문법&로직 문제가 나온다. 세부 과목으로 보면 1. 소프트웨어설계2. 소프트웨어개발3. 데이터베이스구축4. 프로그래밍언어활용5. 정보시스템구축관리 으로 나누어진다.과목당 20문제씩 총 ..
2025년 1월 회고
·
자기계발/회고 & 생각 정리
2025년 1월이 벌써 지나갔다.1달을 되돌아보면서 2025년 한 해 목표를 세운 것 중에 얼마나 이루었는지 점검해보려고 한다. 진로와 관련된 목표1. 전공 성적 A+ 유지아직 개강하지 않았으니 관련이 없다.생각해보니 졸업 프로젝트 주제도 슬슬 정해야 하는데, 설날도 끝났으니 구체적으로 이야기를 시작해 봐야겠다. 2. 방학동안 개발하고 학기 중에 유지보수 하는 경험 쌓기이 부분은 지금 내 기준에서 만족스럽게 경험을 쌓고 있다.밴드 동아리에서 활용할 연습실 예약 시스템을 개발 중인데, 2월 초에 운영 시작을 목표로 막바지 개발 중이다.프로젝트 기획 및 디자인 경험, 프론트 멤버와 협업하는 경험, 백엔드 멤버와 소통하는 경험, 프로젝트를 주도적으로 세팅하고 의사결정을 이끌어가는 경험은 다시 생각해도 얻기 힘..