프로그래머스 10

프로그래머스 : 순위 검색 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 브루트 포스로 가능한 모든 조건의 조합을 생성하고, 이진 탐색을 통해 효율적으로 해당 조건을 만족하는 지원자 수를 찾아냄 각 info 문자열에 대해 가능한 모든 조건의 조합을 생성하고, 해당 조건에 해당하는 점수를 Map에 저장 Map의 각 값(점수 리스트)를 오름차순으로 정렬 각 query에 대해 해당 조건을 만족하는 점수의 개수를 찾기 위해 이진 탐색을 사용 이진 탐색을 통해 주어진 점수 조건을 만족하는 지원자의 수를 계산하여 결과 배열에 저장 구현 코드 자바(Java) // package pg724..

Problem_Solving 2024.01.25

프로그래머스 : 이진 변환 반복하기 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 문자열 s를 이진 변환하는 과정을 거쳐, 모든 0을 제거하고, 남은 1들의 개수에 대한 이진수로 변환하는 과정을 반복 각 변환 과정에서 제거된 0의 개수와 변환 횟수를 계산하여 반환. 이진 변환 과정은 문자열을 순회하면서 0을 제거하고, 남은 1의 개수를 이진수 형태로 변환하는 방식으로 진행. while 반복문을 사용하여 주어진 조건이 충족될 때까지 변환 과정을 반복하고, Integer.toBinaryString 메서드를 활용하여 정수를 이진수 문자열로 변환. 구현 코드 자바(Java) // packag..

Problem_Solving 2024.01.23

프로그래머스 : 짝지어 제거하기 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 문자열에서 같은 알파벳이 연속으로 나타나는 쌍을 제거 주어진 문자열 s를 순회하면서, 각 문자를 리스트에 추가 리스트에 이미 문자가 있고, 그 문자가 현재 문자와 같으면 연속된 쌍이므로 리스트에서 마지막 문자를 제거 문자열의 모든 문자를 처리한 후, 리스트가 비어 있으면 모든 연속 쌍이 제거된 것이므로 1을 반환하고, 그렇지 않으면 0을 반환 구현 코드 자바(Java) // package pg12973; import java.util.*; public class Solution { // public st..

Problem_Solving 2024.01.22

프로그래머스 : 하노이의 탑 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 재귀적으로 가장 큰 원판을 목적지 기둥으로 옮기고, 나머지 원판들을 중간 기둥을 이용해 재배치하는 과정을 반복 n 개의 원판을 from 기둥에서 to 기둥으로 이동시키는 로직을 재귀적으로 구현합니다. n == 1인 경우, 가장 작은 원판을 바로 to 기둥으로 옮깁니다. n > 1인 경우, n - 1개의 원판을 보조 기둥(여기서는 6 - from - to로 계산)으로 옮기고, 가장 큰 원판을 to 기둥으로 옮긴 후, 보조 기둥에 있는 원판들을 다시 to 기둥으로 옮깁니다. 구현 코드 자바(Java) imp..

Problem_Solving 2024.01.12

프로그래머스 : 소수 찾기 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 문자열로 주어진 숫자들을 이용하여 만들 수 있는 모든 숫자 조합 중 소수의 개수를 찾는 문제를 해결 각 숫자 조합은 모든 자리수의 순열을 생성하여 set에 저장 permutate 함수는 주어진 숫자로 가능한 모든 순열을 재귀적으로 생성 생성된 각 숫자 조합에 대해 에라토스테네스의 체를 사용하여 소수를 판별 생성된 모든 숫자 조합에 대해 에라토스테네스의 체를 적용하여 해당 숫자가 소수인지 판별하고, 최종적으로 소수의 개수를 반환 에라토스테네스의 체는 여러 개의 자연수에 대하여 소수를 판별할 때 사용하는 알..

Problem_Solving 2024.01.04

프로그래머스 : 쿼드압축 후 개수 세기 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 2D 배열에서 특정 조건에 따라 배열을 작은 단위로 나눔 각 부분의 합이 전체가 0인지, 1인지를 판단하여 해당 부분을 처리 이 과정에서 0과 1의 개수를 세어 answer 배열에 저장하고 반환 구현 코드 // package pg68936; import java.util.*; public class Solution { // 메인 메소드 public static void main(String[] args) { int[][] input = { { 1, 1, 0, 0 }, { 1, 0, 0, 0 }, { 1,..

Problem_Solving 2024.01.04

프로그래머스 : 거리두기 확인하기 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 주어진 장소 배열(places)에 대한 거리두기 규칙 준수 여부를 검사 각 장소 배열은 5x5 크기의 문자 배열로, 각 문자는 ‘P’, ‘O’, ‘X’ 중 하나 solution 메소드는 각 장소 배열에 대해 search 함수를 호출하여 거리두기 준수 여부를 확인하고, 이를 결과 배열에 저장 search 함수는 각 위치를 순회하며, ‘P’(사람이 있는 자리) 주변에 다른 ‘P’가 규정된 거리 안에 있는지 검사 위반 사항이 있으면 즉시 0을 반환하고, 모든 위치가 규칙을 준수하면 1을 반환 구현 코드 // ..

Problem_Solving 2024.01.04

프로그래머스 : 삼각 달팽이 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 좌측하단, 우측, 좌측 상단으로 움직이는 3가지의 움직임 경우의 수를 각기 구현 개수가 정해져 있지 않은 경우이므로, Array 대신 List를 사용하여 구현 get, add, addAll 등 list의 메소드들을 적절히 사용 구현 코드 //package pg68645; // 패키지 선언 import java.util.ArrayList; // ArrayList 사용을 위한 import // import java.util.Arrays; // Arrays 사용을 위한 import import java.uti..

Problem_Solving 2023.12.25

프로그래머스 : 행렬의 곱셈 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 행렬 내적은 두 개의 행렬을 곱하는 연산으로, 주어진 두 행렬 A와 B가 있을 때, 결과 행렬 C를 계산하는 방법이다. 이때 A의 열의 수와 B의 행의 수가 일치해야 한다. 먼저, 주어진 두 행렬 A와 B가 다음과 같다고 가정해 본다면, 결과 행렬 C는 m x p 크기를 가지게 된다. 행렬 C의 각 원소 cij는 다음과 같이 계산된다. 코드에서는 이러한 원리를 기반으로 중첩된 반복문을 사용하여 각 원소를 계산하고 결과 배열 C에 저장. 각 원소 cij는 A의 행 i1과 B의 열 j2를 곱한 값들을 모두 ..

Problem_Solving 2023.12.25

프로그래머스 : 모의고사 (자바, JAVA)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 두 배열 간의 일치 여부를 판단하고 해당 결과 중 가장 높은 값을 찾아낸다. 삼항연산자, Stream API 등을 활용하여 코드를 더 간결하고 효율적으로 작성 구현 코드 // import java.util.Arrays; import java.util.ArrayList; public class Solution { public int[] solution(int[] answers) { // 세 수포자의 답안 패턴을 배열로 정의합니다. int[] s1 = {1, 2, 3, 4, 5}; int[] s2 = {2,..

Problem_Solving 2023.12.24