목록Java (371)
기록방
👉 문제링크🔸 문제 분석 🔸K개의 문자를 배웠을 때, N개의 단어(문자열) 중 최대 몇 개를 읽을 수 있는지 출력한다.모든 단어는 anta로 시작해 tica로 끝난다.🔸 문제 풀이 🔸단어의 시작과 끝이 정해져 있으므로, 'a', 'n', 't', 'i', 'c' 다섯 글자는 반드시 읽을 줄 알아야 한다.K가 5 미만인 경우에는 0을 반환한다.K >= 5 일 때, K-5 개의 문자를 추가로 배워서 몇 개의 단어를 읽을 수 있는지 확인해야 한다.비트 마스킹으로 배운 문자를 표시한다.배운 문자로 단어를 읽을 수 있는지 비트 마스킹으로 확인한다.🔸 코드 🔸import java.io.*;import java.util.StringTokenizer;public class Main { private ..
프로그래머스에서 주관하는 자격증 중 하나인 PCCP의 Lv3 를 취득했다🎉🎉 🚀 왜 따고자 했더라프로그래머스에는 현재 3가지 자격증이 있다. (https://certi.programmers.co.kr/)먼저 PCCP는 코딩전문역량인증시험으로 어려운 난이도의 코딩 자격증이고,PCCE는 코딩필수역량인증시험으로 쉬운 난이도의 기초 코딩 자격증이다.그 밖에도 최근에 생긴 SQL 관련 PCSQL 자격증도 생겼는데, 나중에 취득해볼 생각이다.(PCCE도 따볼까 하는데, 응시 비용이 4만원으로 비싸서 고민...) 난 개발자 지망이고, 다음과 같이 PCCP Lv3 부터 우대사항이 있으므로 목표를 Lv3 취득으로 정했었다.아쉽게도 신입이 아니라 경력직을 많이 뽑아서 직접 지원은 못해봤지만...그래도 포트폴리오용으로..
👉 문제링크🔸 문제 분석 🔸t 번의 테스트 동안 n 개의 전화번호가 주어진다. 각 전화번호가 서로 접두어가 되는 경우가 없는지 판단한다.접두어 관계가 있으면 NO, 없으면 YES를 출력한다.🔸 문제 풀이 🔸n개의 문자열들을 서로 비교해야하는데, n이 1만이므로 O(n^2)으로 비교하면 테스트케이스까지 합쳐서 1초를 초과하게 된다.방법은 2가지가 있는데 정렬 혹은 트라이 자료구조를 이용하는 것이다.정렬 : 현재 문자열보다 긴 문자열 하고만 비교해서 접두어인 경우가 있는지 파악한다.트라이 : 현재 문자열을 접두어로 하거나, 다른 문자열이 현재 문자열에게 접두어인지 확인한다.🔸 정렬 풀이 코드 🔸import java.io.*;import java.util.Arrays;import java.util..
java 8에서 추가된 Map 인터페이스의 디폴트 메서드로, key로 value를 검색하며 후처리를 진행하는 두 가지 메서드가 있습니다.computeIfAbsent() 메서드는 key가 맵핑되어 있지 않을때,computeIfPresent() 메서드는 key가 맵핑되어 있을 때 후처리를 진행합니다. computeIfAbsent() 메서드computeIfAbsent(key, mappingFunction)는 해당 key로 맵핑된 value가 있다면, value를 반환합니다.해당 key가 맵핑되지 않았다면, mappingFuncion을 실행합니다.메서드 구현default V computeIfAbsent(K key, Function mappingFunction) { Objects.requireNonNull(..
👉 문제링크🔸 문제 분석 🔸n * m 배열에서 1로 이루어진 가장 큰 정사각형의 넓이를 출력한다.🔸 문제 풀이 🔸먼저 Brute Force로 풀이 시 시간 복잡도를 계산해 보았다.정사각형의 오른쪽 아래 꼭짓점을 찾는다고 생각했을때, 한 점을 찍고 최대로 그릴 수 있는 정사각형을 찾아야 한다.실제로는 최대로 그려지는 값을 찾아야 해서 더 걸리겠지만,그려지는 정사각형의 한 변의 길이가 k라고 했을 때,어림잡아서 시간 복잡도는 O(n*m*k*k)이다.따라서 1,000 ^ 4 = 1조로 시간 제한인 1초를 가뿐히 넘게 된다.2차원 배열 형식에서 효율을 높이고자 하는 경우여서 DP를 의심하고 점화식을 찾기위해 노력했다.명쾌한 점화식 대신 손으로 적어보며 row, col 합배열을 만든 뒤 dp 배열을 만드..