프로그래머스 132

[프로그래머스, 자바, 258712번] 가장 많이 받은 선물

풀이해당 문제 풀이는 크게 복잡한 건 없었지만순조롭게 해결하기 위해 어떻게 할 지 고민을 했고,그에 따른 결과는 친구들의 접근을 위해 map으로 넘버링하기그리고 2차원 배열로 각 인물 별로 받은 선물의 개수를 체크하고, 준 선물을 체크하기그리고 동시에 선물 지수를 체크하기 위해 별도로 코드 넣기마지막으로 2중 for 문으로 준 선물이 큰지 혹은,준 선물이 같다면 선물 지수가 클 경우면 result에 추가하기.이후 배열에서 가장 큰 값을 출력하여 해결. import java.util.*;class Solution { public int solution(String[] friends, String[] gifts) { StringTokenizer st; int ln = frien..

알고리즘 2024.10.01

[프로그래머스, 자바, 181923번] 수열과 구간 쿼리 2

풀이이전 문제와 마찬가지고 풀이는 간단한데다른 풀이를 보고 적용해보면 추후에 도움이 될 것 같아서 적용.여기에서 특징점은 2개의 map 사용과그에 따른 min() 후 없다면 orElse(-1)로 return 하는 것이 가장 좋았다. import java.util.stream.IntStream;class Solution { // public int[] solution(int[] arr, int[][] queries) { // int[] answer = new int[queries.length]; // int idx = 0; // for (int[] li: queries) { // int num = 1000001; // for..

알고리즘 2024.10.01

[프로그래머스, 자바, 181924번] 수열과 구간 쿼리 3

풀이문제는 정말 간단한거라서 따로 풀이는 없고다른 사람의 풀이를 보다가 Collections.swap() 메서드를 확인하게 되어 포스팅을 햄Collections 타입의 객체로 구성된 배열을 Collectinos.swap()으로첫 번째 인자로는 해당 타입의 배열,두 번째, 세 번째 인자로는 변경하고자는 값을 넣으면 변환이 됨. import java.util.List;import java.util.Arrays;import java.util.ArrayList;import java.util.Collections;import java.util.stream.Collectors;class Solution { public int[] solution(int[] arr, int[][] queries) { ..

알고리즘 2024.10.01

[백준, 자바, 15649번] N과 M (1)

풀이두 가지 해결 방법은 딱 2~3줄 차이로StringBuilder로 결과를 String 타입으로 저장하는 건데나는 기존엔 첫 번째 해결 방법으로 join으로 배열을 공백없이 출력하도록 했는데이유는 계속 변수 + " " 이렇게 하면 마지막 인덱스의 값 다음에 공백이 추가되니까 문제가 될 거 같아 join으로 했는데 두 번째 방법처럼 StringBuilder에 추가 후 sb.toString() 을 해도 아무런 문제가 없어서.앞으로도 이렇게 하면 될 듯하다 ㅋㅋ // 첫 번째 해결 방법import java.io.*;import java.util.*;import java.util.stream.*;public class _15649 { static Deque result; static boolean[..

알고리즘 2024.09.05

[프로그래머스, 자바, 1260번] DFS와 BFS

풀이세상에 파이썬으로는 정말 엄청나게 간결하게 할 수 있는 코드인데자바는 역시 코드가 엄청나게 길게 작성되는 것 같다.우선 기본적인 알고리즘 해결 방법은 같다.다만 for문 작성을 줄이고 최대한 stream을 사용해서 가독성을 늘리려고 하니깐다양한 시도를 해보다가 늦게 되었는데우선 새롭게 알게 된 것들에 대해 작성하자면1. Collections.nCopies()에 두 번째 인자로 new ArrayList() 을 넣고 돌리니같은 주소값을 가지는 배열을 똑같이 추가해서 의도한 코드 구현이 안되었다.그래서 IntStream.rangeCloesd() 로 원하는 크기의 배열을 만든 다음mapToObj에서 ArrayList 객체를 lambda 형식으로 새롭게 만들고Collections 타입이기에 .collect(C..

알고리즘 2024.09.05

[프로그래머스, 자바, 84512번] 모음 사전

풀이해당 문제는 자바로 재귀 문제를 해결해보고자 푼 문제로두 가지 방법을 활용하여 해결해봄우선 첫 번째로는 기본적이며 완전탐색하는 방법으로 모든 조합을 만든 다음 같은 문장을 찾는 방법으로 해결했으며두 번째 방법은 join을 활용해서현재 추가된 배열의 값과 같은 문자열을 찾으면 멈추는 방법으로 해결두 가지 방법 모두 재귀와 백트래킹을 활용하여 해결했음다만 계속 return 사용에 대한 혼동이와서 시간이 걸렸지만이제 해결할 수 있을 것 같다.혼동이 온 이유는 파이썬에서는 return에 대한 타입을따로 정의하지 않다보니 어디부분에선 return 만 사용하고어디부분에선 return {정수타입 변수} 로 하다보니갑자기 혼동이 와서 헷갈렸었다. // 첫 번째 방법import java.util.*;class Sol..

알고리즘 2024.09.04

[프로그래머스, 자바, 12911번] 다음 큰 숫자

풀이그냥 단순하게 해결했으며, 문법적인 것으로 알게된 것은2진, 8진, 16진 변경은 아래와 같다.Integer.toBinaryString() -> 2진Integer.toOctalString() -> 8진Integer.toHexaString() -> 16진그리고 파이썬처럼 문자열 안에 특정 문자가 몇 개있는지 찾는 find()와 같은 함수가따로 없는 듯 하여 아래 코드와 같이 해결할 수 있음을 상기 시킴. class Solution { public int solution(int n) { int n_cnt = find(n); int result = 0; for (int i=n+1; i

알고리즘 2024.09.04

[프로그래머스] 코딩 기초 트레이닝 (각 문제 별 답) -1

문자열의 앞의 n글자def solution(my_string, n): return my_string[:n]접미사인지 확인하기def solution(my_string, is_suffix): return 1 if is_suffix in {my_string[i:] for i in range(len(my_string))} else 0문자열의 뒤의 n글자def solution(my_string, n): return my_string[len(my_string)-n:]글자 이어 붙여 문자열 만들기def solution(my_string, index_list): return "".join([my_string[i] for i in index_list])카운트 업def solution(start_nu..

알고리즘 2024.06.18

[프로그래머스] 5월 식품들의 총매출 조회하기

작성한 쿼리 중 가장 긴 쿼리로따로 작성한 순서에 대해 나열하며 기억하려고 하는데우선 해당 문제는 아래와 같다.테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하며대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬여기서 테이블의 종류는 아래와 같다.보유 차 종류 1번 테이블: CAR_RENTAL_COMPANY_CAR렌탈 정보 2번 테이블: CAR_RENTAL_COMP..

SQL 2024.06.17