코딩테스트

문제 정보는 아래 링크를 확인해주세요! [길 찾기 게임] 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 문제 접근 방법 제공받은 2차원 배열을 Node라는 클래스로 재구성하고, 리스트에 담는다. 리스트를 정렬해주는데, 정렬 순서는 y를 내림차순 - x를 오름차순으로 정렬해준다. 리스트의 요소들을 왼쪽과 오른쪽으로 나눠줄 두 개의 리스트를 만들어준다. 리스트의 첫 번째 있는 Node를 꺼내오고, (탑노드라고 부르겠다) 리스트의 다른 요소들의 x 값이 탑노드의 x값보다 작으면 왼쪽 리스트에 탑노드의 x값보다 크면..
문제 정보는 아래 링크를 확인해주세요! [무지의 먹방 라이브] 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 문제 접근 방법 음식의 시간이 가장 적은 순으로 저장하고, 정렬한다. 시간이 가장 적은 음식부터 다 먹는데 걸리는 시간이 k보다 작으면 k에서 그 시간만큼 빼주고, 다음 음식의 시간에서 현재 음식 시간만큼 빼준다. k보다 클거나 같을 때는 해당 음식 시간 내에 다 먹지 못한다는 의미이므로, 남은 음식의 길이로 k를 나눠주어 몇 번째 먹을 차례인지 구해주고, 현재 남은 음식들 중에 몇 번째 먹을 차례인지 구해준다. [소스 코드] package algorithm.programmers; import java.util.*; /* * 2019 카카오 블라인드 * 무지의 먹방 라이브..
문제 정보는 아래 링크를 확인해주세요! [후보키] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 컬럼들로 만들 수 있는 조합을 만든다 (비트마스킹) 현재 비트마스킹 조합에 해당하는 컬럼 조합을 만들고 SET 자료구조에 담는다. 만든 컬럼 조합의 수가 로우의 수랑 매칭이 돼야 후보키의 조건을 만족하므로 이를 검사한다. 현재 만든 조합에 대한 비트마스킹이 결과 리스트에 있는 값들과 부분집합인지 검사하고(&연산), 부분집합이 아니라면, 결과 리스트에 추가한다. 비트마스킹이란? n개의 값을 가지고 만들 수 있는 조합을 비트 연산을 통해 문제에서 ..
문제 정보는 아래 링크를 확인해주세요! [실패율] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 실패 횟수를 저장할 배열을 만들고, 스테이지 배열을 통해 스테이지마다 실패 횟수를 저장 해당 스테이지마다 문제에서 제시된 실패율 공식을 통해 실패율을 구해주고, 실패율을 내림차순으로 정렬해줄 자료구조를 선택한 다음 이 자료구조에 실패율을 추가해준다. 문제에서 유의해야할 점은 실패율을 구할 때 공식이 (실패 횟수/현재 스테이지 도전자 수) 이다. 현재 스테이지의 도전자 수는 이전 스테이지에서 실패했던 인원을 포함하면 안된다는 점에 유의하며 문제를..
문제 정보는 아래 링크를 확인해주세요! [오픈채팅방] 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [문제 접근 방법] 채팅방의 로그 기록에 대한 record 배열을 분기문 돌린다. 분기문마다 채팅방의 상태를 공백을 기준으로 split하고, 입장/퇴장/닉네임 변경에 대해서 조건문을 통해 해당 조건에 맞는 데이터 처리를 한다. 유의해야할 점은 입장/닉네임 변경의 경우 split을 하면 데이터 길이가 3이지만, 퇴장의 경우 닉네임에 대한 데이터가 없으므로 데이터 길이가 2라는 것에 유의해야하고 닉네임을 변경하는..
문제 정보는 아래 링크를 확인해주세요! [n진수 게임] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 n진수로 만든 숫자의 길이를 턴 수(t) X 인원수(m) 길이만큼 만드는 작업을 한다. 예) t = 4, m = 2라고 할 때, 2진법으로 만들 수 있는 총 숫자 집합은 (0,1,10,11,100)이며 이 2진수 숫자 집합 안에서 첫 번째 턴부터 4번째 턴까지 자기 차례에 맞는 값을 결과값에 추가해주면 된다. [소스 코드] package algorithm.programmers; /* * 2018 카카오 블라인드 * [3차] n진수 게임 *..
문제 정보는 아래 링크를 확인해주세요! [압축] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 A~Z까지 인덱스 정보를 담고 있는 데이터 집합을 만들어준다. msg 문자열에 대해 한 문자씩 분기문을 돌면서 현재 w와 다음 문자인 c를 합한 wc를 만들어주고, wc가 인덱스에 포함되어 있지 않다면, 인덱스 정보에 wc를 포함해주고 w에는 c를 넣어주고 다음 분기문을 돌리고 wc가 인덱스에 포함되어 있다면, 현재 wc를 w에 넣어주고 다음 분기문을 돌린다. 분기문을 돌때마다 해당 인덱스에대한 순서를 결과 리스트에 담아준다. [소스 코드] pa..
문제 정보는 아래 링크를 확인해주세요! [방금그곡] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 방법 음악 정보를 담은 배열에 대한 분기문을 돌린다. 분기문을 돌면서 주어진 멜로디 정보를 포함하고 실행 순서가 빠른 음악 정보의 제목을 반환한다. 멜로디 정보를 포함하는지 확인하는 방법은 해당 음악 정보의 실행시간만큼의 멜로디 정보를 만든다. 이 때, 주의해야할점은 '#'이다. 나는 멜로디 정보를 substring하는 방법을 사용했기 때문에 한글자씩 처리했다. 따라서 멜로디 정보에 #이붙으면 두 글자로 처리되는 오류가 생길 수 있기 때문에 #을 ..
iron_jin
'코딩테스트' 태그의 글 목록 (3 Page)