Algorithms/Programmers 132

[Programmers] 삼총사

문제 조건 3명이 가진 숫자의 합이 0이어야 삼총사가 될 수 있음 문제 풀이 3중 반복문으로 세 명의 친구가 가진 모든 값을 더해 확인 https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

[Programmers] 콜라 문제

문제 조건 A개를 주면 B개만큼 받는다. 문제 풀이 N개를 가지고 있고, A로 나눈 값에서 B를 곱한만큼 받는다. 가지고 있는 N은 새로 받은 병 + 원래 가지고 있던 병에서 A로 나눈 것의 나머지를 더한 값 https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

[Programmers] 옹알이 (2)

문제 조건 조카는 다음과 같은 "aya", "ye", "woo", "ma" 네 단어만 구사할 수 있음 네 단어를 제외한 단어의 발음은 불가 한 단어를 연속해서 발음하는 것은 불가 문제 풀이 주어진 babbling 배열의 단어가 발음할 수 있는 단어로 시작하는지 체크 발음할 수 있는 단어이고, 바로 직전에 사용했던 단어가 아니라면, 사용 한 단어만큼 substring으로 잘라주고, beforeWord에 직전 사용 단어를 저장 tmpWord를 통해 word에 변화가 있다면 다시 반복문을 통해 다음 발음 단어 체크 변화가 없다면 조건에 불일치하므로 반복문 종료 word가 빈 문장이라면 모든 문장을 발음한 것이므로 Answer++ 빈문장이 아니라면 모든 문장을 발음하지 못했으므로 다음 문장으로 넘어감 https..

[Programmers] 기사 단원의 무기

문제 조건 1부터 number까지의 약수의 갯수를 구해야함 약수구하기를 1부터 N까지 모두 계산해서 구하면 (O(n)) 시간초과 N의 약수를 구할 때, √N까지 구하면 약수 절반의 갯수를 구할 수 있음 √N만큼의 약수의 갯수를 구하고 * 2 만약 √N이 제곱근이 된다면 구한 약수의 갯수에 +1 이 방법으로 시간을 O(√n)을 단축할 수 있음 문제 풀이 weapons배열을 만들어 number만큼 약수의 갯수 값을 저장함 약수의 갯수 구하기는 J*J = I 가 될때까지, 즉 제곱근이 되는 숫자가 될 때 까지 계산해주면 됨 만약 약수의 갯수가 limit보다 넘어가면, power 값을 answer에 더해주고, limit과 같거나 적으면, 해당 약수의 값을 answer에 더해준다. 모든 계산이 끝나면 answer..

[Programmers] 햄버거 만들기

문제 조건 빵-야채-고기-빵(1-2-3-1) 순 으로 쌓이면 햄버거 한 개 만들 수 있음 문제 풀이 StringBuilder를 사용해서 ingredient 원소 하나하나 붙여주기 StringBuilder의 맨 마지막이 "1231"이 되는지 체크 .contains를 사용하면 시간초과가 나기 때문에 substring으로 확인함 만약 맨 마지막이 1231이 되면 해당 부분 substring으로 잘라주고, answer++ https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. progra..

[Programmers] 푸드 파이트 대회

문제 조건 food[0] = 물, 항상 1이다 food[i]는 음식 i의 갯수 문제 풀이 i는 1부터 food의 길이만큼 반복 food[i]에 해당하는 숫자 / 2 만큼 answer에 i 를 붙여준다. food 배열 탐색이 완료 되었으면, '0'을 붙여 물을 표시 answer에 쌓았던 것의 반대로 상대방의 음식을 표시 해 주기위해, tmpAnswer를 만들고 answer의 반대로 다시 쌓아줌 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

[Programmers] 과일장수

문제 조건 박스에 담기는 사과 중 가장 낮은 가격 * 사과 갯수 = 한 상자의 가격 박스에 담기는 사과 갯수 = M 내림차순 정렬 시, Collections.reverseOrder()는 Integer배열이여야 하기때문에, Integer[] arr2 = Arrays.stream(score).boxed().toArray(Integer[] :: new); int 배열을 Integer 배열을 다시 만들어 준 후, 내림차순 배열 정렬 문제 풀이 주어진 score배열을 내림차순으로 정렬 score[M] 의 사과가 박스에 담기는 사과 중 가장 낮은 가격이 됨 answer에 M * score[M] 의 값을 더해줌 https://school.programmers.co.kr/learn/courses/30/lessons/1..