목록Java (46)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전탐색으로 전체 경우의 수를 비교하기에는 데이터의 양이 너무 많기 때문에(배열 길이: 100,000) 최대값을 구할 수 있는 알고리즘을 찾아 적용해야만 하는 문제였다. - 문자열 배열로 변환 - Comparator 재정의 (기준 : 두 개의 문자열을 앞뒤로 바꿔 붙인 2개의 수를 Integer로 변환했을 때 더 큰 수가 앞으로 오도록) 및 정렬 수행(Arrays.sort()) - StringBuilder를 활용하여 앞에서부터 문자열 전부 이어주기 - 가장 앞자리(가장 큰 수)가 0인 경우 전체가 0이기 때문..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 새로 생긴 1단계 문제. 제시된 방식대로 구현하여 해결했으나 내 코드의 디테일이 아쉬웠다. - 제시된 문자열 s를 char 배열로 변환함 - 배열 arr을 탐색하며 한 글자(arr[i])씩 조건에 맞게 증가시킴 - 먼저 1을 증가시키고(처음에 주어진 문자는 skip과 겹치지 않음), z를 넘어가는 경우 a로 변환 - 문자가 skip 문자열에 포함된다면 계속 증가, z를 넘어가는 경우 a로 변환 - 배열을 String으로 변환 후 반환 Note - 로직 자체는 문제가 없으나 다른 사람이 제출한 내용을 보고나서 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 해시맵 두 개를 활용하여 간단하게 해결할 수 있는 문제였다. 로직 설명 - 해시맵 map을 선언하여 want와 number 배열로부터 목표로 하는 할인 정보(제품명, 수량) 저장 - (discount 배열을 탐색하며) 해시맵 dMap을 선언하여 일별로 10일 간의 할인 정보 저장 - 생성된 dMap과 map을 비교하여 수량이 다른 경우 isIdentical 변수 false로 지정 - 두 해시맵이 동일하면 answer 증가 작성 코드 import java.util.*; class Solution { ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 길이가 길고 주어진 숫자가 큰데 반해 뽑아서 사용해야하는 숫자는 가장 작은 두 개였기 때문에 효율적인 정렬을 위해 우선순위 큐(PriorityQueue)를 사용해서 문제를 해결했다. - scoville 배열을 우선순위 큐에 삽입 - (최소 스코빌 지수가 K보다 작으면서 2개 이상 스코빌지수가 남아있는 동안 반복하여) 가장 작은 두 수를 추출하여 혼합 후 다시 큐에 삽입 - 반복문 종료 후에도 최소 스코빌 지수가 K보다 작으면 실패, 아니면 성공 Note - 처음에 트리맵을 떠올렸는데, 둘을 비교해서 찾아보니 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 특이사항 없이 간단하게 풀린 문제였다. - skill_tree 배열을 탐색 - 각 tree 문자열에서 skill에 들어있는 문자를 제외한 나머지 문자 삭제 (정규식 활용) - 남아있는 문자가 있을 경우 첫 글자(필수 스킬)를 포함하면서 skill과 패턴이 같을 경우 answer 증가 - 남아있는 문자가 없을 경우 가능한 스킬트리이므로 answer 증가 class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0..