전체 글

전체 글

    [프로그래머스, 43105] 정수 삼각형 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 61.2 MB, 시간: 9.99 ms사용 알고리즘: 동적계획법 (Dynamic Programming), DFS dfs로 왼쪽 대각선으로 갔을 경우와 오른쪽 대각선으로 갔을 경우 중 더 큰 경우를 선택한다. 그런데 자신의 왼쪽에 있던 노드가 오른쪽 대각선으로 가는 경우와 자신이 왼쪽 대각선으로 가는 경우가 동일하니, 앞에서 이미 경우의 수를 구해놨다면 다시 구하지 않고 미리 저장해 둔 값을 사용..

    [프로그래머스, 12909] 올바른 괄호 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 52.5 MB, 시간: 6.07 ms사용 알고리즘: 스택, 큐 알고리즘은 스택과 큐이지만어차피 문자열에서 열린 괄호가 나오면 스택에 넣어주고, 닫힌 괄호가 나오면 스택에서 빼주는 형식으로 동작한다.(스택에 열린 괄호만 계속 들어왔다 나감)즉, 스택에 어떤 값이 들어있는지가 중요한 게 아니라 스택에 몇 개가 들어있는지가 중요한 것이기 때문에스택을 사용하지 않고 변수에 열린 괄호가 몇 개인지만 저..

    [프로그래머스, 12916] 문자열 내 p와 y의 개수 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 79.8 MB, 시간: 0.05 ms사용 알고리즘: 구현class Solution { boolean solution(String s) { boolean answer = true; char[] arr = s.toCharArray(); int p = 0, y = 0; for(int i = 0; i

    [프로그래머스, 42628] 이중우선순위큐 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 129 MB, 시간: 85.33 ms사용 알고리즘: 자료구조 큐에서 최댓값, 최솟값을 꺼내 리턴해주는 getMaxNum()과 getMinNum()을 메소드로 구현했다. 명령어 실행 중에는 큐가 비어있어도 리턴값을 아무거나 줘도 상관없지만,명령어 실행이 끝나고 마지막 최댓값, 최솟값을 구할 때 큐가 비어있으면 [0,0]을 리턴해야 되기 때문에큐가 비어있을 때 두 메소드의 리턴값을 무엇으로 할지가..

    [프로그래머스, 12939] 최댓값과 최솟값 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 81.3 MB, 시간: 11.27 ms사용 알고리즘: 구현 입력 값 범위를 안 줘서 int로 풀어도 되나 고민 많이 했는데, lv2에 정답률 제일 높은 문제니까 그냥 int로 한 번 풀어볼까...? 싶은 마음으로 풀어서 제출해 봄이 정도면 lv1...? 이 아닐런지,,, 프로그래머스 레벨은 아직 감이 안 온다.import java.util.*;class Solution { public S..

    [프로그래머스, 87389] 나머지가 1이 되는 수 찾기 (java)

    https://school.programmers.co.kr/learn/courses/30/lessons/87389?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 79.6 MB, 시간: 4.07 ms사용 알고리즘: 구현class Solution { public int solution(int n) { int answer = 1; while(n % answer != 1) answer++; return answer; }}

    [백준, BOJ 14950] 정복자 (java)

    https://www.acmicpc.net/problem/14950메모리: 26,704 KB , 시간: 376 ms사용 알고리즘: 그래프 이론, 최소 스패닝 트리처음에 다익스트라로 풀었다가, 알고리즘 분류를 보고 크루스칼 알고리즘으로도 풀 수 있겠다고 알게 돼서 다시 크루스칼로 풀었다...알고리즘 며칠 안 했다고 이전에는 당연히 크루스칼로 풀었을 문제를 다익스트라로 풀었네,,import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.PriorityQueue;import java.util.StringTokenizer;public class Main { static int[] parent; public static..

    [프로그래머스, 131116] 식품분류별 가장 비싼 식품의 정보 조회하기 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/131116 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT origin.category, origin.price as max_price, origin.product_nameFROM food_product as origin, ( SELECT category, MAX(price) as price FROM food_product WHERE category in ('과자', '국', '김치', '식용유') GROUP BY categ..

    [프로그래머스, 164668] 조건에 맞는 사용자와 총 거래금액 조회하기 (mysql)

    https://school.programmers.co.kr/learn/courses/30/lessons/164668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT user.user_id, user.nickname, SUM(board.price) AS total_salesFROM used_goods_board as boardINNER JOIN used_goods_user as userON board.writer_id = user.user_idWHERE board.status = 'DONE'GROUP BY board.writer_idHAVING SUM..

    [백준, BOJ 9024] 두 수의 합 (java)

    https://www.acmicpc.net/problem/9024메모리: 231,292 KB , 시간: 2,072 ms사용 알고리즘: 정렬, 이분 탐색, 두 포인터처음엔 TreeSet으로 K - arr[i]에 해당하는 수가 있는지(contains) 검사하고,없다면 큰 수 중 가장 작은 수(higher)와 작은 수 중 가장 큰 수(lower)를 검사해서 구했었다.-> 메모리 초과 그다음 이분 탐색으로 K - arr[i]보다 작은 수 중 가장 큰 수를 구하고, 이분 탐색으로 구한 수와 그 수보다 큰 수 중 가장 작은 수를 비교하여 구했다.정답은 뜨는데, 주석 쓰고 다시 돌렸더니 메모리 초과... 같은 코드 다시 돌렸는데 또 정답약간 불안 불안한 듯.. 문제 풀고 투 포인터로 풀 수 있다는 거 알고 투 포인터..