자바
-
알고리즘) 카카오 블라인드 채용 2020, 외벽 점검알고리즘/프로그래머스 카카오 2020. 5. 8. 20:38
Kakao Blind Recruitment 2020 외벽 점검 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한사항 n은 1 이상 200 이하인 자연수입니다. weak의 길이는 1 이상 15 이하입니다. 서로 다른 두 취약점의 위치가 같은 경우는 주어지지 않습니다. 취약 지점의 위치는 오름차순으로 정렬되어 주어집니다. weak의 원소는 0 이상 n - 1 이하인 정수입니다. dist의 길이는 1 이상 8 이하입니다. dist의 원소는 1 이상 100 이하인 자연수입니다. 친구들을 모두 투입해도 취약 지점을 전부 점검할 수 없는 경우에는 -1을 retur..
-
프로그래머스 Lv.2) 폰켓몬(포켓몬, Pokemon)알고리즘/프로그래머스 2020. 5. 7. 17:25
폰켓몬 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제 역시 스킬 체크를 풀다가 나왔다. 보자마자 최근 많이 풀고있던 이분탐색(이진탐색, Binary Search)라는 것을 눈치챘고, 포켓몬 타입의 수가 리턴값이기 때문에 left, right, mid도 쉽게 정할 수 있었다. 그나마 생각할 시간이 조금 필요했던 부분은 이 기준을 어떻게 이용해서 값을 얻을 것이냐였다. 내가 찾은 답은 타입의 종류를 담은 배열을 만들어 중복 체크를 하는 것이었다. 1~200,000까지 분류 번호가 된다는 조건이 있어서 배열을 200,001만큼 초기화 시켜줬다. ..
-
프로그래머스 Lv.2) 최솟값 만들기알고리즘/프로그래머스 2020. 5. 7. 17:14
최솟값 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 스킬 체크를 풀다 나온 문제이다. 문제와 예시를 보자마자 최소값이랑 최대값이랑 곱해서 더하면 평균으로 맞춰지니까 최소가 아닌가? 하는 생각이 들었고 그 생각이 맞았다. 1. 두 배열을 정렬해준다. 2. A는 첫번째 값부터 B는 마지막 값부터 곱해서 더해준다. 코드 import java.util.Arrays; public class MakeMinNum_12941 { private static int solution(int []A, int []B) { int answer = 0; Arrays...
-
알고리즘) 카카오 블라인드 채용 2020, 기둥과 보 설치알고리즘/프로그래머스 카카오 2020. 5. 7. 00:35
Kakao Blind Recruitment 2020 기둥과 보 설치 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 주목할 점 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다.보는 한쪽 끝 부분이 기둥 위에 있거나, 또는 양쪽 끝 부분이 다른 보와 동시에 연결되어 있어야 합니다. 벽면을 벗어나게 기둥, 보를 설치하는 경우는 없습니다. 바닥에 보를 설치 하는 경우는 없습니다. 구조물은 교차점 좌표를 기준으로 보는 오른쪽, 기둥은 위쪽 방향으로 설치 또는 삭제합니다. 구조물이 겹치도록 설치하는 경우와, 없는 ..
-
알고리즘) 2019 카카오 개발자 겨울 인턴십, 징검다리 건너기알고리즘/프로그래머스 카카오 2020. 5. 7. 00:24
2019 카카오 개발자 겨울 인턴십 징검다리 건너기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 투 포인터 알고리즘으로 풀다가 효율성 13번만 시간 초과가 뜨길래 이진 탐색으로 풀었다. 이진탐색이기에 left, mid, right를 무엇으로 잡을 것인지가 핵심이다. 1. 돌의 stepping 수(=건널 수 있는 사람의 수) 최소값, 최대값을 각각 left, right에 넣어준다. 2. while문을 돌면서 mid 값 (건널 수 있는 사람의 수 예상 답)과 비교하면서 건널 수 있을 경우에는 answer을 저장해주고 최소인 left를 mid+1로 저장..
-
알고리즘) 카카오 블라인드 채용 2020, 가사 검색알고리즘/프로그래머스 카카오 2020. 5. 3. 00:30
Kakao Blind Recruitment 2020 가사 검색 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주목해야할 조건 검색 키워드는 와일드카드 문자인 '?'가 하나 이상 포함돼 있으며, '?'는 각 검색 키워드의 접두사 아니면 접미사 중 하나로만 주어집니다. 풀이 처음 문제를 보고 어? 쉽네? 라고 접근했다. 선형 loop를 통해 조건에 맞는지 확인하고 count를 업데이트 하는 식으로 짰다. 하지만, 역시나 카카오는 쉬울리가 없다.. 효율성에서 1,2,3번이 틀렸다. 여기서 '아.. Trie구나' 라고 생각했다. Trie를 떠올린 것 까지는 좋았..
-
알고리즘) 카카오 블라인드 채용 2020, 자물쇠와 열쇠알고리즘/프로그래머스 카카오 2020. 5. 1. 16:17
Kakao Blind Recruitment 2020 문자열 압축 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음에는 DFS로 해야하나 고민하다가, 열쇠가 회전하는 경우(+4) 열쇠의 이동 범위 등을 생각하면 시간초과가 분명할 것 같아서 포기했다. 오래 고민하다가 감이 안잡혀서 다른 분들의 로직을 참고했는데, 자물쇠의 크기를 3배 확장하는 방법이 존재했다.. 생각보다 간단한 문제여서 크게 반성했다.. 어렵게만 접근한 것 같았다.. 이후 로직은 스스로 생각했다. 1. 자물쇠의 크기를 3배 확장하고, 원래 자물쇠의 정보를 확장한 배열의 정중앙에 둔다...
-
알고리즘) 카카오 블라인드 채용 2020, 괄호 변환알고리즘/프로그래머스 카카오 2020. 5. 1. 16:03
Kakao Blind Recruitment 2020 괄호 변환 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 4. 문자열 u가 "올바른 괄호 문자열"이 아니라면 아..