여니의 성장 diary
article thumbnail
728x90
반응형

JAVA 과정이 1개월 정도 지나면서 과정 평가를 대신해서 프로그래머스 문제를

많이 풀어보라고 권유해주시고, 몇 개의 문제를 골라주신 덕분에 문제 풀다가 살짝 현타가 왔지만...

문제를 풀면서 배워가는 것들도 있고, 부족한 부분도 파악이 되서 좋은 것 같다 :)

 

아직은 응용할 수 있는게 많지않아서 다른 사람들의 풀이에 비해 코드가 많이 길지만

언젠가 줄여서 쓸 수 있는 날이 오길 바라면서 더 열심히 공부하기!


n의 배수 고르기
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
(제한사항 : 1 ≤ n ≤ 10,000 / 1 ≤ numlist의 크기 ≤ 100 / 1 ≤ numlist의 원소 ≤ 100,000)

 

우선  매개변수 numlist 배열에서 n의 배수가 아닌 것을 따로 걸러낸 배열 arr를 생성해주고,

arr 배열의 길이는 최대 numlist 배열의 길이로 정의해준다.

그리고 arr배열의 길이(원소의 개수)가 될 int타입의 indexNum를 정의해주었다.

 

반복문과 조건문을 이용해 numlist 배열의 원소들 중 매개변수 n으로 나누었을때

나머지가 0이 되는 원소들(n의 배수인 원소들)을 arr 배열의 원소로 대입해주도록 하였다.

조건문을 만족하였을 때 indexNum이 증감하도록 정의해주면 indexNum이 배열의 길이가 된다.

 

그런 다음 다시 반복문을 이용해서 arr 배열의 원소들을 answer 배열에 대입해주면 완성!

배열 뒤집기
정수가 들어있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
(제한사항 : 1 ≤ num_list의 길이 ≤ 1,000 / 0 ≤ num_list의 원소 ≤ 1,000)

 

배열 뒤집기 문제는 생각보다 쉽게 풀 수 있었다.

 

우선 num_list 배열의 길이만큼의 인덱스에서 1을 빼면 배열의 최대 인덱스 값을 구할 수 있으므로

num_list.length -1 부터 0까지 인덱스를 1씩 감소시켜주고, 반환할 배열의 인덱스는 0부터 1씩 증가시켜주는

반복문을 통해 answer 배열의 원소에 num_list 배열의 원소를 대입해준다.

 

num_list 배열의 마지막 원소를 answer 배열의 첫번째 원소에 담아주고,

num_list 배열의 원소는 거꾸로, answer 배열에는 차례대로 넣어주기 때문에

answer 배열은 자연스레 num_list 배열을 뒤집은 형태가 된다!

 

중복된 숫자 개수
정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는지를 return 하도록 solution 함수를 완성해보세요.
(제한사항 : 1 ≤ array의 길이 ≤ 100 / 0 ≤ array의 원소 ≤ 1,000 / 0 ≤ n ≤ 1,000)

 

중복된 숫자 개수를 출력하는 문제도 쉽게 풀 수 있었다.

 

array 배열의 원소를 하나씩 순회하는 반복문과

반복문 내에서 배열의 원소가 n과 같다면 answer을 1씩 증감시켜주도록 하는 조건문을 활용하면

n과 중복되는 숫자만큼 answer이 증감하여 쉽게 중복된 숫자의 개수를 구할 수 있다.

 

 

자릿수 더하기
자연수 N이 주어지면, N의 자릿수의 합을 구해서 return하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3  = 6을 return하면 됩니다.
(제한사항: N의 범위는 100,000,000 이하의 자연수)

 

자연수 N의 자릿수의 합을 구하기 위해서 while 반복문을 활용하였고,

주어진 자연수 n이 0이 아니면 n을 10으로 나누어주는 실행문을 반복하고,

10으로 나눈 나머지를 answer에 누적해주면 각 자리수의 합을 구할 수 있다.

 

삼각형의 완성조건(1)
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야합니다.
     ● 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
(제한사항: sides의 원소는 자연수입니다. /  sides의 길이는 3입니다. / 1 ≤ sides의 원소 ≤ 1,000)

 

삼각형의 완성조건 문제는 세 변의 길이가 담긴 배열이 매개변수로 주어지기 때문에

sides 배열의 원소는 오직 3개이다.

 

그러므로 sides 배열의 원소를 오름차순으로 정렬한 다음

인덱스 0의 원소와 인덱스 1의 원소를 더한 값이 인덱스 2의 원소보다 크다면 answer에 1을 대입해주고,

아니라면 answer에 2를 대입해주는 조건문을 활용하여 판별할 수 있었다.

 

728x90
반응형
profile

여니의 성장 diary

@pponyo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!