java
-
[프로그래머스] 자물쇠와 열쇠 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 자물쇠와 열쇠 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠 와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 인 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 크기인 정사각 격자 형태로 되어 있습니다. https://programmers.co.kr/learn/courses/30/lessons/60059 📝 문제 분석 Key는 회전 횟수에 따라 4가지 종류가 있을 수 있습니다. Lock의 (0, 0)부터 (N - 1, N - 1)까지 4가지 종..
-
[프로그래머스] 괄호 변환 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. https://programmers.co.kr/learn/courses/30/lessons/60058 📝 문제 분석 문제에서 제시하는 순서대로 정확히 구현하기 ⌨️ 코드 import java.util.Arrays; class Solution { public String solution(String p) { if(p.length() == 0)..
-
[프로그래머스] 문자열 압축 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. https://programmers.co.kr/learn/courses/30/lessons/60057 📝 문제 분석 문자열을 1개 단위부터 n/2개 단위까지 전부 압축해보고, 가장 짧은 길이를 리턴한다. ⌨️ 코드 class Solution { public int solution(String s) { int n = s.len..
-
[프로그래머스] 매칭 점수 / 2019 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀에 편입될 수 있었고, 대망의 첫 프로젝트를 맡게 되었다. 그 프로젝트는 검색어에 가장 잘 맞는 웹페이지를 보여주기 위해 아래와 같은 규칙으로 검색어에 대한 웹페이지의 매칭점수를 계산 하는 것이었다. https://programmers.co.kr/learn/courses/30/lessons/42893?language=java 📝 문제 분석 html 페이지에서 웹페이지의 URL과 외부 링크의 URL을 정규식 매칭을 이용해 찾아낸다. 외부 링크의 개수를 통해 기본 점수를 구한다. 웹페이지들을 각..
-
[프로그래머스] 길 찾기 게임 / 2019 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 길 찾기 게임 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. https://programmers.co.kr/learn/courses/30/lessons/42892 📝 문제 분석 node를 y값 내림차순, x값 오름차순으로 정렬 첫번 째 원소를 root로 트리를 이진 트리를 만들자 node = idx, left, right, 각 단..
-
[프로그래머스] 무지의 먹방 라이브 / 2019 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 무지의 먹방 라이브 효율성 테스트에 부분 점수가 있는 문제입니다. 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. https://programmers.co.kr/learn/courses/30/lessons/42891 📝 문제 분석 하나씩 음식 먹는 것을 계산하다보면 효율성 테스트는 통과할 수 없습니다. 먹는데 걸리는 시간을 기준으로 오름차순 정렬을 한 뒤, 음식 하나씩 없애버리는 방법으로 진행합니다. for(; i < n; i++) { int d = (i == ..
-
[프로그래머스] 후보키 / 2019 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 후보키 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다. 후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다. https://programmers.co.kr/learn/courses/30/lessons/42890 📝 문제 분석 각 컬럼들의 모든 부분 집합을 만든다. 이 부분집합에 해당하는 속성들을 뽑아서 set에 저장 set사이즈..
-
[프로그래머스] 실패율 / 2019 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. https://programmers.co.kr/learn/courses/30/lessons/42889 📝 문제 분석 일단 각 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 배열을 만듭니다. player[stages[i]]++ 형태로 만들고, 스테이지에 도달한 플레이어 수 배열은 clear[i] = clear[i] + clear[i + 1] + cl..