문제 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 아무리 생각해도 bfs와 dp 만 생각이 났다. 그런데 n이 최대 10억까지 될수 있으므로 bfs와 dp로 풀 경우에는 시간초과가 발생한다. 그래서 1부터 10까지 표를 그려 세어보니 특징이 나타났는데 바로 이진수의 1의 개수라는 것이었다. 따라서 bitCount 함수를 이용하여 문제를 풀었다. 하지만 정석적으로(?) 푸는 방법도 있어 그 코드도 한번 첨부해보겠다 코드 bitCount를..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(int[] people, int limit) { Arrays.sort(people); int answer = 0; int min = 0; for(int i=people.length-1;i>=min;i--){ if(people[i] + people[min]
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int solution(int n, int a, int b) { int answer = 0; while(true){ answer += 1; a = a%2 == 0 ? a/2 : a/2 + 1; b = b%2 == 0 ? b/2 : b/2 + 1; if(a == b) break; } return answer; } }
문제 https://school.programmers.co.kr/learn/courses/30/lessons/164673 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 SELECT BOARD.TITLE, BOARD.BOARD_ID, REPLY.REPLY_ID, REPLY.WRITER_ID, REPLY.CONTENTS, DATE_FORMAT(REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD AS BOARD INNER JOIN USED_GOODS_REPLY AS REPLY ON ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[] solution(int brown, int yellow) { int w = 0, h = 0; for(int i=1;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int[] solution(int n, String[] words) { List list = new ArrayList(); int temp = 1; list.add(words[0]); for(int i=1;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 사실 처음에는 stack을 생각하지 않았다. 그냥 문자열 문제인 줄 알았는데 다시 보니 stack 을 이용한 문제였다. 같은 숫자이면 stack에서 pop하고 다른 숫자이면 stack에 push해서 제거를 해나가면 되는 문제였다 코드 import java.util.*; class Solution { public int solution(String s) { Stack stack = new..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음 문제를 보자마자 toBinaryString 함수가 생각났다 toBinaryString을 이용하여 이진수로 바꾸고 값을 1씩 늘리면서 1의 개수를 셌다. 다른 방법으로는 bitCount를 이용하여 비트수를 세는 방법이 있었다. 코드 class Solution { public int solution(int n) { String str = Integer.toBinaryString(n);..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 투포인터를 이용하여 연속되는 숫자의 합을 구했다 다른 분들 풀이를 보니 그냥 이중 for문을 이용하여 푸신것 같다 코드 class Solution { public int solution(int n) { int answer = 0; int left = 0; int right = 1; int sum = 1; while(right
문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[] solution(String s) { int zero = 0; int count = 0; while(!s.equals("1")) { count += 1; int one = 0; for(int i=0;i 0){ s += one % 2; one = one/2; } } int[] answer = {count,zero}; return ans..