본문 바로가기

알고리즘4

프로그래머스 - 삼총사 문제 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요. .. 2023. 3. 8.
프로그래머스 - 올바른 괄호 문제 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 요점 스택의 성질을 이해하고 있다면 어렵지 않게 풀 수 있다. pseudo code 1. 올바른 괄호는 "(" 로 시작하고 ")"로 닫혀야 하므로 ")"로 시작하거나 "("로 닫히는 경우는 false를 리턴해야한다. 2. 문자열 s내의 요소들 중 (가 있.. 2023. 3. 1.
프로그래머스 - 최댓값과 최솟값 문제 : 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 요점 : 문자열로 전달된 값들을 비교할 수 있는지를 물어보는 것 pseudo code 1. Math.max, Math.min을 이용한다. Math.max(), Math.min()은 전달 받은 파라미터 중 최대, 최소값을 리턴한다.예를 들어 Math.max(1,2,4,5,19)는 19를 리턴한다.이 때 전달 값은 배열에 들어있거나 문자열이면 안된다. 2. 입력받은 값이 문자열이므로.. 2023. 3. 1.
프로그래머스 - 약수의 개수와 덧셈 문제 : 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 요점 : 약수가 홀수인 수는 특정 수의 제곱이다. 즉 루트를 씌웠을 때 정수면 약수가 홀수개이다. ex. 25는 약수가 3개(1,5,25) / 36은 약수가 9개(1,2,3,4,6,9,12,18,36) pseudo code : 1. 요점을 잘 확인한다. left부터 right까지의 수 중 제곱근 값이 정수인 수를 찾아야 한다. Math.sqrt() : 괄호 안의 값의 제곱근 값을 리턴한다. Number.isInteger() : 괄호안의 값이 정수이면 true를 리턴한.. 2023. 2. 28.