프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/64063?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 호텔에서 방 배정을 해줄 때, 4가지 조건에 맞게 방 배정을 해줍니다. 예를 들어 1,3,4는 배정된 방이 없으므로 자신이 원하는 방에 배정이 됩니다. 다음 1은 1이 이미 배정되었으므로 그보다 큰 2에 3도 배정 안 된 방중 3보다 큰 5, 다음은 6이 배정 받는 형식입니다. 문제에 대한 아이디어 k수가 10^12이므로 배열로 만들면 안됩니다. 그러므로 Map..
https://school.programmers.co.kr/learn/courses/30/lessons/49190 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 입력으로는 방향이 주어진다. 이 방향으로 움직였을 때, 방이 생기는지 확인하면 됩니다. 예시로 살펴보면 주어진 방향대로 움직이면 삼각형 1개, 큰 사각형1개, 평행사변형 1개가 생깁니다. 문제에 대한 아이디어 이 문제는 프로그래머스 코딩 테스트 문제 풀이 전략에서 나온 문제입니다. 간선을 지나갔는지 유무를 확인하는 문제를 어떻게 풀어야 할까 고민하고 있었는데 책에 이 문제가 있어 책의 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42584# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 설명이 약간 애매합니다. 1초에 가격에서 앞으로 5초 동안 떨어지지 않으므로 4입니다 2초 시점에 2의 가격은 앞으로 2보다 떨어진 가격이 없으므로 3입니다. 3초 시점에 3의 가격은 바로 1초 후에 떨어지므로 1입니다. 4초 시점은 1초 후까지 가격이 떨어지지 않습니다. 문제에 대한 아이디어 제일 처음 생각은 뒤에서 부터 값을 추가해 그 때 제일 낮은 숫자의 인덱스를 가지고 있..
https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이 문제는 부분 수열의 최대 합을 구하는 문제와 엄청 유사합니다. 다른 점은 펄스 수열을 곱한 부분 수열의 최대 합을 구하는 것입니다. 문제에 대한 아이디어 부분 수열의 합을 구하는 방법은 DFS를 통해 모든 경우를 조사해서 최대 합을 찾는 방법이 존재합니다. 하지만 이 문제에서는 최대 500000개 이므로 DFS로 탐색하면 시간 초과가 나올 것입니다. 그러므로 O(n) 안에 풀어야 ..
https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 fr*d*과 일치하는 것은 frodo, crodo abc1**과 일치하는 것은 abc123 그러므로 조합은 frodo abc123, crodo abc123 2개입니다!! 문제에 대한 아이디어 배열의 크기는 1이상 8이하 입니다. banned_id도 이보다 작기때문에 완전 탐색으로 가능할 것 같습니다. banned_id와 일치하는 user_id를 찾습니다. 각각 user_id를 모든 조합..
https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 numbers를 각각 나누어 숫자를 만들 때 소수인지를 검사 하는 것이빈다. 17은 7 17 71 3개의 소수를 만들 수 있습니다. 문제에 대한 아이디어 숫자가 0 ~ 9 까지이고 numbers의 길이는 1이상 7이하이기 때문에 완전 탐색으로 충분히 해결할 수 있습니다. numbers로 만들 수 있는 숫자를 다 탐색하면서 소수인지 검사하면 됩니다. 전체 코드 import java..
https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이렇게 첫 번째 영역이 주어지면 쿼드 트리와 같은 방식으로 압축하는 것 입니다. 결국 0의 갯수는 4개, 1의 갯수는 9개 입니다. 문제 해결 방법 재귀를 사용해서 풀어야 하는 문제입니다. 똑같은 공간으로 계속 나누므로 적절하게 점화시막만 잘 만들면 쉽게 풀 수 있을 것 같습니다. 이 문제는 정사각형으로 계속해서 분할하면서 정사각형 안이 모두 0이거나 1이면 합치는 형식입니다. (off..
코딩 테스트를 볼 때 문자열을 가지고 장난치는 문제가 상당히 많이 나옵니다. 문자열 문제가 나왔을 때 대처할만한 메서드들을 공부해 보려고 합니다. 문자에 대해 문자의 배열 String.charAt(int index) // 문자 하나를 가져온다. String.toCharArray() // 모든 문자를 한 번에 배열로 가져온다. charAt은 하나하나씩 호출하므로 메서드 호출에 따른 오버헤드가 있습니다. toCharArray()는 문자열 길이에 해당하는 메모리를 사용합니다. 아스키코드 아스키코드도 문제를 풀 때 정말 많이 사용했습니다. 특히 Char를 int로 바꿀 때 자주 사용했습니다. char digit = '10'; int digitToInt = digit - '0'; 대문자를 소문자로 소문자를 대문자..
Wooooong!!
'프로그래머스' 태그의 글 목록