목록CodingTest (432)
기록방
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 압축 알고리즘인 LZW를 구현하는 문제이다. 알고리즘 설명에 따라 문자열 처리를 수행하는 문제이다. 알파벳 대문자만 입력으로 주어진다. 🔸 문제 풀이 🔸 색인되는 문자열들은 그 값을 리스트에 저장한다. 색인되지 않는 문자열을 새롭게 추가한다. 리스트의 값을 반환한다. 🔸 코드 🔸 import java.util.Map; import java.util.HashMap; import java.util.List; import java.util.ArrayList; class Solution..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 입력받은 정수 n을 k진수로 변환 뒤 0으로 구분해 나온 값들 중 소수의 개수를 반환한다. 🔸 문제 풀이 🔸 먼저 k진수 변환 및 0으로 잘라 문자열 배열을 생성한다. 배열의 문자 하나씩 소수인지 판별한다. 🔸 코드 🔸 class Solution { public int solution(int n, int k) { // 진수 변환 & 0으로 구분 String[] ss = Integer.toString(n, k).split("0+"); // 소수 판별 int answer = 0; f..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 자카드 유사도를 구현하기 위해 교집합과 합집합을 구현하는 문제이다. 주어진 두 문자열의 파싱이 필요하다. 🔸 문제 풀이 🔸 두 문자열의 대소문자를 구분하지 않으므로, 대문자 혹은 소문자로 일치시킨다. 2문자씩 잘라서 원소로 사용하는데, 띄어쓰기나 특수문자 등 알파벳이 아닌 문자가 포함되어있으면 배제한다. 여기서 주의 할 점은 알파벳이 아닌 문자들을 제거하고 2문자씩 자르는게 아닌, 먼저 자른다음 필터링 하는 순서이다. 중복을 허용하는 다중 집합이기 때문에 Map에 개수와 함께 저..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 큐에서 앞 원소를 꺼낸다. (poll) 꺼낸 원소보다 우선순위가 더 높은 원소가 있다면, 꺼낸 원소를 다시 큐에 넣는다. (add) 우선순위대로 원소를 꺼내다가 처음 위치가 location인 원소가 나올 때의 꺼낸 원소 수를 반환한다. 🔸 문제 풀이 🔸 원소들의 우선순위와 처음 위치를 기억하기위해 두 요소를 담은 클래스 Process를 만들어 Queue에 저장한다. 우선순위대로 꺼내기 위해 PriorityQueue에 원소를 저장한다. 우선순위 큐에 나온 원소와 같은 원소가 나올 ..
👉 문제링크 1235번: 학생 번호 첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부 www.acmicpc.net 🔸 문제 분석 🔸 학생번호를 중복되지 않도록 가장 짧게 만들 수 있는 길이를 출력한다. 번호를 줄일때는 왼쪽수 부터 버린다. 🔸 문제 풀이 🔸 학생 번호 문자열의 끝 부분에서 하나씩 길이를 늘려가며 중복되는 문자열이 있는지 확인해야한다. 끝 부분에 있으면 접근이 어려울 것 같아 문자열을 뒤집어서 저장 후 중복을 확인했다. 중복확인을 위해 문자열을 1부터 N-1까지 잘라가며 Set에 넣고 확인했다. 🔸 코드 🔸 import java.io.Bu..