목록Java (46)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열을 하나씩 잘라가며 양쪽의 토핑 종류 개수를 (토핑개수 x) 비교하는 문제이다. - 형(older)은 HashMap으로, 동생(younger)은 HashSet으로 선언 - topping 배열을 한 바퀴 돌며 older한테 전부 넣어주기 : put(토핑번호, 개수); - topping 배열을 한 바퀴 돌며 1) 해당 토핑을 older에서 1개 빼기 (1개 뺀 후 0개인 경우 키값 제거 필요함. 키의 개수가 size()로 잡히기 때문) 2) 해당 토핑을 younger에 넣어주기 3) older와 younger..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Least Recently Used (LRU) 캐시 알고리즘을 구현하는 문제로 특이사항은 없었다. - cacheSize가 0인 경우 전부 miss이므로 (5 * cities 배열 길이) 반환 - cache로 사용할 LinkedList 선언 - cities를 탐색하며 1) 도시 이름 city 소문자로 변경 2) cache를 탐색하며 hit인 경우 현재 위치의 city 제거 후 0번 위치에 city삽입, isHit true로 변경 (시간: 1) 3) miss인 경우(!hit) cache가 찼는지를 확인하여 마지막..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 완전 탐색으로 풀었다가 몇몇 테스트 케이스에서 시간 초과가 나서 그리디로 변경해서 푼 문제이다. - 한 번 탐색 시 한 자릿수의 최대값을 찾아야함 - 한 번 탐색 시 탐색 범위는 '탐색할 한 자릿수를 제외한 나머지 자릿수를 문자열의 마지막에 몰아넣은 상태에서 남는 모든 자릿수'임. - 예를 들어, number = 4177252841, k = 4인 경우 첫 번째 반복 시 41772까지 탐색하고, 52841은 뒤에 몰아넣은 상태에서 41772에서의 최대값인 첫번째 7을 결과에 추가함. 두 번째 반복 시에는..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예외사항이 너무 많은데 테스트케이스 오픈이 안 되어있어 다른 사람들의 힌트를 참고하여 케이스를 하나씩 때려잡아야 했던 문제이다(코드참조 x). 그래서 그런지 5점이나 주긴 했는데 풀어놓고도 딱히 다른 문제풀이에 도움이 될 것 같진 않다는 인상을 많이 받았다. - 주어진 숫자 storey를 오른쪽에서부터 한 자리씩 탐색함 - 자릿수가 0~4일 때는 빼서 내림하는게 유리함 (첫 번째 if문) - 자릿수가 6~9일 때는 더해서 올림하는게 유리함 (두 번째 if문) - 자릿수가 5일 때 1) 직전 자릿수(현재의 오른..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 조합 만들기 + 소수 구하기의 두 가지를 수행하면 해결할 수 있는 문제이다. - 문자열 쪼개서 배열로 저장하기 : String[] arr - arr 각 요소의 방문 여부를 체크해줄 int 배열 선언 : int[] visited - 전체 조합 숫자를 넣어줄 set 선언: HashSet set - 재귀 함수를 사용하여 완전 탐색을 통해 전체 문자열의 조합 구하기 : private void addNum 1) 현재 문자열 삽입 (빈문자열 제외) 2) arr 배열을 탐색하며 2-1) visited 배열에서 방문체..