프로그래머스 129

[백준, 자바, 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

[프로그래머스, 파이썬] 등수 매기기

풀이 첫 번째 풀이는 2중 for문을 사용해서 특정 값과 비교 값을 비교하며 조건에 따라 특정 값의 인덱스에 따른 result의 값을 차감했는데 O(n2)으로 시간 효율성이 좋지 않기에 두 번째 풀이와 같이 index로 접근하게 되면 시간 효율성을 좀 더 높일 수 있다. 첫 번째 풀이 def solution(score): li = [sum(i)/2 for i in score] result = [len(score)]*len(score) for i in range(len(li)): for j in range(len(li)): if i!=j and li[i] >= li[j]: result[i]-=1 return result 두 번째 풀이 def solution(score): li = [sum(i)/2 for ..

알고리즘 2024.03.29