programmers lv2
[프로그래머스, 12973] 짝지어 제거하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 63 MB, 시간: 62.68 ms사용 알고리즘: 자료구조, 스택 문자열의 문자들을 하나씩 스택에 넣는다.만약 스택의 바로 위에 있는 문자가 현재 스택에 넣으려는 문자와 같다면, 알파벳이 2개 붙어있는 짝을 찾은 것이므로 pop을 통해 짝지어 제거하기를 해준다.그게 아니라면 해당 문자를 push 해준다.import java.util.*;class Solution{ public int..
[프로그래머스, 12945] 피보나치 수 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 75.6 MB, 시간: 2.59 ms사용 알고리즘: 다이나믹 프로그래밍class Solution { private static final int MOD = 1_234_567; public int solution(int n) { int[] dp = new int[n + 1]; // 피보나치 수를 저장할 dp 배열 dp[1] = 1;..
[프로그래머스, 12924] 숫자의 표현 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 52 MB, 시간: 0.54 ms사용 알고리즘: 투 포인터 투 포인터 l과 r을 두고, l부터 r까지 수의 합을 sum에 저장해둔다.sum이 n보다 작다면 r++을 통해 sum값을 키워준다.sum이 n보다 크다면 l++을 통해 sum값을 줄여준다.sum == n을 찾았다면 anwer++ 해준다.class Solution { public int solution(int n) { ..
[프로그래머스, 70129] 이진 변환 반복하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 81.8 MB, 시간: 28.84 ms사용 알고리즘: 구현import java.util.*;class Solution { public int[] solution(String s) { int[] answer = new int[2]; char[] tmp = s.toCharArray(); // 문자열을 char 배열로 변환 Queue q = ..
[프로그래머스, 12951] JadenCase 문자열 만들기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.1 MB, 시간: 0.08 ms사용 알고리즘: 구현 처음엔 StringTokenizer로 공백 기준 문자열을 나눠 첫 문자는 대문자로, 다음 문자들은 소문자로 바꿔주었는데, 여러 테스트케이스가 통과하지 않았다.문제를 다시 읽어보니 공백문자가 연속해서 나올 수 있다는 조건이 있었다.다시 풀 때는 StringTokenizer로 문자를 나누지 않고, 앞에 공백이 있을 경우 한 단어의 첫 문자로..
[프로그래머스, 12941] 최솟값 만들기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 53 MB, 시간: 2.15 ms사용 알고리즘: 정렬 최솟값을 구해야 하므로 A에서 뽑을 수 있는 가장 작은 수는 B에서 뽑을 수 있는 가장 큰 수와 곱하는 것이 유리하다.따라서 두 배열을 오름차순으로 정렬한 후에, A는 맨 앞부터 B는 맨 뒤부터 하나씩 곱하여 더해준다.import java.util.*;class Solution{ public int solution(int []A, in..
[프로그래머스, 12909] 올바른 괄호 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 52.5 MB, 시간: 6.07 ms사용 알고리즘: 스택, 큐 알고리즘은 스택과 큐이지만어차피 문자열에서 열린 괄호가 나오면 스택에 넣어주고, 닫힌 괄호가 나오면 스택에서 빼주는 형식으로 동작한다.(스택에 열린 괄호만 계속 들어왔다 나감)즉, 스택에 어떤 값이 들어있는지가 중요한 게 아니라 스택에 몇 개가 들어있는지가 중요한 것이기 때문에스택을 사용하지 않고 변수에 열린 괄호가 몇 개인지만 저..
[프로그래머스, 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..
[프로그래머스, 59046] 루시와 엘라 찾기 (mysql)
https://school.programmers.co.kr/learn/courses/30/lessons/59046 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT animal_id, name, sex_upon_intakeFROM animal_insWHERE name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
[프로그래머스, 133026] 성분으로 구분한 아이스크림 총 주문량 (mysql)
https://school.programmers.co.kr/learn/courses/30/lessons/133026 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krSELECT ingredient_type, SUM(total_order) AS TOTAL_ORDERFROM first_half as fhLEFT JOIN icecream_info as ii ON fh.flavor = ii.flavorGROUP BY ingredient_typeORDER BY TOTAL_ORDER