본문 바로가기

전체 글30

[Code Tree] 코드트리 빵(Java) 문제 https://www.codetree.ai/training-field/frequent-problems?page=3&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 풀이 [자료 구조] - int[][] DELTAS: 사방 이동 좌표 - PriorityQueue NEXT_MOVES: 사람이 편의점을 향해 가는 다음 위치 - 이동 수 기준 오름차순 정렬 - PriorityQueue MOVES: 편의점에서 베이스캠프까지의 움직임 - 이동 수 기준 오름차순 정렬 > 이동 수 같으면 행 기준 오름차순 정렬 > 행 같으면 열 기준 오름차.. 2023. 4. 3.
SW 마에스트로(Software Maestro) 14기 합격 후기 0. 들어가며 싸피 수료 후 취업 준비를 하던 중 소프트웨어 마에스트로 모집 공고를 접하게 되었다. 혼자 공부하는 것에 지쳐가고 있던 터라 열정 넘치는 사람들과 교류하며 개발역량을 더 키우고자 지원하게 되었다. https://www.swmaestro.org/sw/main/main.do SW마에스트로 교육 프로그램 SWM 과정소개 창의력과 재능을 겸비한 연수생을 선발, SW전문가 멘토링, 기본소양 교육, 자기주도형 학습 등을 통해 교육성과 극대화 선발(2개월) 235명 예비 과정 (2개월) 예비교육, swmaestro.org 전형 과정 서류 -> 1차 코딩테스트 -> 2차 코딩테스트 -> 심층 면접 1. 서류 서류 접수 기간에는 다른 기업을 준비하고 있어서 마감 직전까지 자기소개서 작성을 못했었다. 계속되.. 2023. 4. 3.
[BOJ] 4991 로봇 청소기(Java) 문제 https://www.acmicpc.net/problem/4991 4991번: 로봇 청소기 각각의 테스트 케이스마다 더러운 칸을 모두 깨끗한 칸으로 바꾸는 이동 횟수의 최솟값을 한 줄에 하나씩 출력한다. 만약, 방문할 수 없는 더러운 칸이 존재하는 경우에는 -1을 출력한다. www.acmicpc.net 풀이 - 방의 정보를 입력받아 가구는 -1, 먼지는 1부터 증가하면서 번호를 매겨 높이(height)X너비(width) 크기의 이차원 int 배열 room에 저장한다. - 비트마스킹을 활용해 방문체크를 하기 위한 (1 2023. 2. 20.
[BOJ] 17141 연구소 2(Java) 문제 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net 풀이 - 입력 시 2(바이러스)인 좌표를 VIRUSES에 추가하고, 1(벽)이 아닌 값(바이러스가 퍼질 수 있는 공간)의 개수를 센다. - 최소 시간을 n*n로 초기화 하고, 퍼트릴 바이러스 m개를 조합을 이용해 선택한다. - 선택된 바이러스를 Queue에 추가하고 BFS를 이용해 바이러스를 퍼뜨리며 퍼뜨린 시간으로 최소 시간을 갱신한다. - 빈 공간(empty)를 '바이러스가 퍼질 수 있는 공간 -.. 2023. 1. 11.
2022 회고록 2022년을 돌아보며 숨가쁘게 달려온 2022년도 벌써 끝이라는게 믿기지가 않는다. 2022년을 요약하자면 SSAFY 그자체다. SSAFY 내에서 경험한 것들을 정리해보자 한다. 알고리즘 스터디 1년동안 꾸준히 알고리즘 스터디를 진행했다. 알고리즘 스터디를 통해 여러 문제를 풀어보고, 한 문제에 대해 다양한 풀이를 접하면서 실력이 많이 늘었다. 하지만 알고리즘 공부에 시간 투자를 많이 하지 않아 아직도 기업 코딩 테스트를 통과하지 못한다는 점이 스스로에게 실망스러운 부분이다. 스터디장으로서 스터디를 어떻게 운영해야 스터디원들에게 도움이 될지 많이 고민했다. 전체적으로 스터디원들이 해이해진다 싶을 땐 쓴소리도 마다하지 않았고, 월간 회고를 통해 스터디원들이 배운 내용을 정리하고 코드 발표에 대한 피드백을 .. 2022. 12. 31.
[BOJ] 21939 문제 추천 시스템 Version 1(Java) 문제 https://www.acmicpc.net/problem/21939 21939번: 문제 추천 시스템 Version 1 tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령 www.acmicpc.net 풀이 - 문제 번호와 문제 난이도를 저장할 Problem 클래스를 선언하고, 난이도 순 정렬을 위해 Comparable을 구현한다. - 문제를 난이도 순으로 저장할 TreeSet과 문제 번호와 문제 난이도를 저장할 Map을 선언한다. - N개의 문제 정보를 입력받아 Problem 객체를 생성해 TreeSet에 추가하고, 문제 번호와 난이도를 각각 Key, Val.. 2022. 12. 14.
[Hibernate] 하이버네이트 명명 전략(Hibernate Naming Strategy) 0. 들어가며 프로젝트를 시작하기에 앞서 다른 팀원들이 이전에 진행한 프로젝트 코드를 리뷰했는데, Java에서 사용하는 카멜 케이스를 DB에 스네이크 케이스로 저장하기 위해 @Column 어노테이션을 써서 일일이 네이밍을 지정해준 것을 봤다. 네이밍을 바꾸는 게 아닌 스네이크 케이스로만 바꾸는 용도라면 어노테이션을 써서 이름을 지정해주지 않아도 스네이크 케이스로 바꿔준다고 해당 팀원에게 알려주었는데 알려주면서도 JPA가 바꿔주는건지, 하이버네이트가 바꿔주는 건지 헷갈려서 찾아보았다. 1. 하이버네이트(Hibernate)란? 하이버네이트(Hibernate)는 자바 언어를 위한 ORM(Oriented Relational Mapping) 프레임워크다. JPA의 구현체로, JPA 인터페이스를 구현하며 내부적으로.. 2022. 9. 22.
[Spring] @Bean vs @Component 0. 들어가며 Spring Container에서 관리하는 자바 객체를 Bean이라고 한다. Bean을 등록하는 방법은 아래 세 가지가 있다. XML Annotation Java Config 2, 3번 방법을 사용할 때 @Component와 @Bean 어노테이션 모두 객체를 Bean으로 등록하는 역할을 수행하는데 두 어노테이션의 차이가 무엇인지 궁금해서 찾아보았다. 1. @Bean @Bean 어노테이션은 Spring Container에 의해 관리될 Bean을 생성함을 나타낸다. @Bean 어노테이션을 이해하기 위해 가장 먼저 봐야할 것은 @Target 어노테이션이다. @Target 어노테이션은 해당 어노테이션이 사용될 수 있는 타입을 지정한다. @Bean의 타겟은 메소드와 어노테이션이다. 아직 어노테이션 .. 2022. 4. 17.
[Java] 인터페이스(Interface) 네이밍 0. 들어가며 SSAFY 7기부터 현직자 멘토링이 새로 생겼다. 사실 별로 관심이 없었는데 같은 반 동기가 멘토링 게시판을 애용한다는 이야기를 듣고 어떤 질문들이 올라와 있는지 호기심에 멘토링 게시판을 둘러보던 중 흥미로운 게시글을 발견했다. 실습 때 사용하던 인터페이스의 네이밍에 대한 질문이었는데, 결론부터 말하면 실습 때 사용하던 네이밍은 지양해야하는 방법이라는 것을 새롭게 알았다. 사실 이 부분은 이전에 Java 스터디를 할 때 했던 다뤘던 내용일 수 도 있지만 잘 기억이 안난다...반성하고 복습하자. 1. 헝가리안 표기법(Hungarian Notation) 1-1. 헝가리안 표기법이란 헝가리안 표기법(Hungarian Notation)이란 프로그래밍 언어에서 변수 및 함수의 이름 인자 앞에 데이터.. 2022. 4. 3.