본문 바로가기

분류 전체보기

[프로그래머스] 카카오 블라인드 리쿠르트 2018 - 셔틀 버스 (Java) 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 문제 설명 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀..
[프로그래머스] 카카오 블라인드 리쿠르트 2019 - 후보키 (Java) 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 문제 설명 후보키 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다. 후보키에 대한 내용이..
[Spring Data JPA] ORM, JPA, Hibernate 헷갈리는 용어 정리 ORM(Object Relational Mapping)? 객체와 데이터베이스의 테이블 사이의 관계를 연결해주는 것 애플리케이션에서의 객체와 데이터베이스의 테이블에는 차이점이 존재함(상속 여부, 외래키 등등) ORM없이 데이터를 직접 핸들링한다면 select 쿼리를 날려 받은 결과값을 하나하나 어떤 정보인지 매핑해서 사용해야함 JPA(Java Persistence API) Java 진영에서 ORM 표준으로 지정 데이터에 접근한 api 규격을 정의 → ORM이 전체적인 개념이라면 jpa는 구체적으로 기능을 정의한 스펙 Hiabernate JPA에 대한 실제 구현체 Spring Data JPA Spring에서 hibernate를 더 간편하게 사용하도록 추상 객체를 한번 더 감싸서 만들어놓은 것 실제로 Enti..
[프로그래머스] 카카오 블라인드 리크루트 2020 -자물쇠와 열쇠 (Java) 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 자물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있..
[프로그래머스] 카카오 블라인드 리쿠르트 2021 - 순위 검색 (Java) 효율성 테스트 통과 x 리스트를 정렬해두고 조회 시 이진탐색을 통해 조회를 한다면 O(log n)으로 시간복잡도를 줄일 수 있다. -> 효율성 테스트 통과 o 코드 import java.util.*; public class Solution { private Map database; public int[] solution(String[] info, String[] queries) { int[] answer = new int[queries.length]; database = new HashMap(); for (String data : info) { String language = data.split(" ")[0]; String jobGroup = data.split(" ")[1]; String career ..
[프로그래머스] 다단계 칫솔 판매 - Java 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 문제 설명 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, 조직을 운영하던 민호는 조직 내 누가 얼마만큼의 이득을 가져갔는지가 궁금해졌습니다. 예를 들어, 민호가 운영하고 있는 다단계 칫솔 판매 조직이 아래 그림과 같다고 합시다. 민호는 center이며, 파란색 네모는 여덟 명의 판매원을 표시한 것입니다. 각각은 자신을 조직..
[Clean Code(클린 코드)] 5장 형식 맞추기 본 게시글은 를 학습한 내용을 정리한 글입니다. (문제시 삭제하겠습니다.) Clean Code(클린 코드) - 교보문고 애자일 소프트웨어 장인 정신 | 나쁜 코드도 돌아는 간다. 하지만 코드가 깨끗하지 못하면 개발 조직은 기어간다. 매년 지저분한 코드로 수많은 시간과 상당한 자원이 낭비된다. 그래야 할 이유 www.kyobobook.co.kr 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위해 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 팀을로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한..
[프로그래머스] 게임 맵 최단 거리 - Java 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에..