코딩 테스트/프로그래머스

    프로그래머스 - 호텔 방 배정 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/64063 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr map의 경우 로 room_number를 순회하면서 map값을 추가 및 수정하여서 값을 구합니다. 처음 배정 되는 경우 희망하는 호실에 배정해주고 바로 다음 해당 호실을 희망하는 경우 +1에 배정된다는 것을 고려해보시면 이해가 되실겁니다. import java.util.HashMap; import java.util.Map; // 프로그래머스 호텔 방 배정 문제 class Solution { static Map map = new HashMap(); public long[] solution(long k, long[] room_number) { long[] ..

    프로그래머스 - 불량 사용자 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr dfs를 통해서 가능한 모든 경우(모든 순서, 모든 유저)를 구하고 가능한 벤 목록인지 체크합니다. 이후 ArrayList를 set으로 바꾸면서 저장하는데 이유는 ArrayList는 유효한 순서를 가지기 때문에 동일한 값들을 가지더라도 순서가 다르면 다르게 판단합니다. 때문에 resultSet에 ArrayList를 그대로 넣으면 순서만 다른 경우 다르다고 판단하게 됩니다. 이..

    프로그래머스 - 경주로 건설 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 일반적인 경로 찾는 bfs 문제 두가지 정도 고려사항이 추가됩니다. 첫번째로 방문 처리가 없이 cos..

    프로그래머스 - 키패드 누르기 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1단계 문제 이지만 시간이 좀 걸린 문제인데 이유는 1. 다이얼의 거리가 삼각함수를 통한 거리가 아니라 x 이동량 + y 이동량이라는 점입니다. 2. 다이얼의 위치를 잡아주는 식 이 두가지 때문인데 1번은 문제 예시까지 봐야 한다는 것는 교훈을 얻었고 2번의 경우는 ..

    프로그래머스 - 자동완성 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17685 코딩테스트 연습 - [3차] 자동완성 자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g programmers.co.kr 해당 문제는 문자열 정렬을 통한 풀이와 Trie라는 자료구조를 사용하는 풀이 두가지가 있습니다. 1. 정렬 문자열의 사전순으로 정렬하면 근접한 문자와 비교해서 풀면 됩니다. 주의점은 하나의 문자가 다른 문자에 완전히 포함되는 경우와 아닌 경우인데 1. warrior, word 의 경우 w까지 만 동일하기 2문자를 치면 자동완성이 가능하지만 2. war, wa..

    프로그래머스 - 폰켓몬 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 간단한 문제로 포켄몬 종류 번호크기만큼의 배열을 만들어서 해결하거나 set을 이용할 수 있습니다. 둘다 nums의 길이만큼만 돌면되지만 배열은 고정길이로 일정 수준의 메모리를 사용해야합니다. Set은 내부 로직에서 중복여부를 체크하고 추가하는 연산이 진행됩니다. 1. 배열 문제 중 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다. 을 따라서 20000..

    프로그래머스 - 다단계 칫솔 판매 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/77486# 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 문제를 잘 읽고 방향만 잘 잡으면 쉽게 풀수 있는 문제입니다. 저는 문제를 잘 못 읽고 방향을 잘못 잡아서 고생을 좀했네요 .. 후 잘 읽어야하는 부분은 seller 리스트에 동일한 이름이 나올수 있다는 것입니다. (저는 seller를 ArrayList로 만들고 index를 찾아오는 형태로 처음에 진행했어서 틀리고 있었습니다.) 방향은 위를 파악하면 쉽게 잡을 수 있는..

    프로그래머스 - 로또의 최고 순위와 최저 순위 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 최고는 알아볼 수 없게 된 수가 모두 유효한 경우이고 최저는 알아 볼 수 없게 된 수가 모두 유효하지 않은 경우 이므로 lottos와 win_num의 같은 수의 개수 구하고 lottos에 알아볼 수 없게 된 숫자의 수의 개수를 구하여서 최고는 두 개수의 합 최저는 같은 경우의 개수로 등수를 구하면 된다. ps 로또의 범위가 45까..