알고리즘/Programmers

알고리즘/Programmers

    [JavaScript]최솟값 만들기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 2)

    [JavaScript]최솟값 만들기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 2)

    프로그래머스 2단계에서 정답률이 상당히 높은 문제였다. 문제를 잘 읽어보면 쉽게 말해서 길이가 같은 배열이 2개가 온다고 했을때, 각각 한번씩 곱해서 그합이 최솟값이 나오게 하라는것 이었는데 규칙? 이 있다. A배열에서 가장 작은수와 B배열에서 가장 큰수를 곱하고 A배열에서 가장 큰수와 B배열에서 가장 작은수를 곱해서 더하면 되는것. 즉 A배열은 오름차순으로 정렬을하고 B배열은 내림차순으로 정렬해서 각 index에 맞게 곱하여 합을 구하면 되는것. function solution(A,B){ A.sort((a, b) => a - b); B.sort((a, b) => b - a); return A.reduce((answer, value, index) => answer + value * B[index], 0)..

    [JavaScript]신고 결과 받기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)

    https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 간단한것 같으면서도 1단계치고 은근 생각해야하는 조건이 많아서 생각보다 난이도가 있다고 생각하였다. 하지만 하나씩 차근차근 생각해보다보니 풀수 있었다. 우선 한사람이 같은사람을 여러번 신고한 경우 1회만 인정이 된다. 즉, 중복제거를 해야한다. 또한 tmp와 같이 비어있는 새로운 복사본을 만들면 그 이후에는 조건을 생각하기 조금 쉽다. (근데 나는 비어있는 새로운 복사본 만드는데도 애먹..

    [JavaScript]성격 유형 검사하기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)

    [JavaScript]성격 유형 검사하기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)

    https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 레벨1 문제치고는 이제 막 코딩테스트를 준비하는 분들에게는 고민이 조금 필요할수 있었던 문제였던것같습니다. 사실 뭐 저도 요새 코테준비 손놓고있다가 1년만에 문제를 보는거라... 바로 슥슥 풀리진 않고 고민을 조금 했습니다. 일단 문제를 보시면 MBTI를 구하는 문제라고 생각하시면 되는데 설명이 거창해서 겁을 지레 먹으실수도 있지만,,, 코드의 가독성이나 효율성의 차이지 많이 어렵지는 않은 문제..

    [Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/77884?language=java 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 숫자의 약수를 구하는 것이 핵심인 문제입니다. 약수만 구할수 있다면 리턴할 값을 구하는 것은 그닥 어렵지 않습니다. import java.util.*; class Solution { public int solution(int left, int right) { int answer = 0;..

    [Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/12919?language=java 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 문제만 보고 어려운 문제일것같았는데 기본 문법만 알고 있다면 누구나 풀수있는 문제입니다! class Solution { public String solution(String[] seoul) { String answer = ""; for(int i = 0; i < ..

    [Programmers]두 개 뽑아서 더하기_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]두 개 뽑아서 더하기_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/68644?language=java 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 주어진 배열에서 숫자 두개를 뽑아서 더했을때 나올수 있는 모든 경우의 수를 구하는 문제입니다. 저같은 경우는 for문을 두번 돌려서 두개를 뽑아내는 모든 경우의수를 계산하여 중복이 없도록 Set 객체를 만들었고 set은 정렬을 할수 없기 때문에 배열에 다시 담아서 정렬하여 출력했습니다. i..

    [Programmers]예산_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]예산_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/12982?language=java 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 조건을 잘생각해보면 정렬을 하고 앞에서부터 순서대로 더하다가 주어진 최대값(budget)의 수가 될때까지 더하다가 budget을 초과하게 되면 더이상 카운트를 하지 않으면됩니다! import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer ..

    [Programmers]내적_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]내적_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/70128?language=java 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 배열 a와 b는 같은 길이로 주어집니다. 이렇게 같은 길이로 주어진 배열의 같은 인덱스 값을 곱하고 그것들을 모두 더한 값을 리턴하는 문제입니다. class Solution { public int solution(int[] a, int[] b) { int..

    [Programmers]콜라츠 추측_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]콜라츠 추측_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/12943?language=java 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 하샤드 수 처럼 문제만 보면 뭔가 어려울거같은데 별거 없었던 문제입니다! 문제에 주어진 조건만 잘 맞게 코드를 짜면 되는데요! class Solution { public int solution(int num) { int answer = 0; long a = num; while(a != 1){ if(a % 2..

    [Programmers]하샤드 수_자바 / 프로그래머스 연습문제(level 1)

    [Programmers]하샤드 수_자바 / 프로그래머스 연습문제(level 1)

    https://programmers.co.kr/learn/courses/30/lessons/12947?language=java 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 왠지 모르게 처음에는 문제 이름이 하샤드 수라서 어려워 보일거같은 문제였습니다만 그리 어렵지 않습니다! 주어진 숫자의 자리수를 더하고 그 더한 숫자를 주어진 숫자와 나누었을때 나누어 떨어지면 ture 나누어 떨어지지 않으면 false를 리턴하는 문제입니다. class Solution { public boolea..