김지팡의 저장소
article thumbnail
프로그래머스 - 부족한 금액 계산하기
알고리즘 2022. 2. 15. 18:00

int 타입 변수 price(놀이기구의 이용로), money(가지고 있는 금액), count(놀이기구 이용 횟수)에 저장된 값들을 입력받아 놀이기구의 비용을 계산하여 돈이 부족하면 얼마 큼의 금액이 부족한지를 반환하고 돈이 부족하지 않으면 0을 반환하는 함수를 작성하는 문제이다. 코드를 보며 설명하도록 하겠다. 비용 측정은 count * price가 아닌 n회 * price이다. 다시 말해, 1번 이용할 시 1 * price, 2번은 2 * price, 3번은 3 * price가 되는 셈이다. 그렇기 때문에 탄 횟수만큼의 총이용료를 계산하기 위해 for 반복문을 사용하여 1부터 count번까지 총이용료를 계산하여 answer에 반복 문장이 끝날 때마다 누적 덧셈을 하였다. answer에 이용료가 저장이 ..

article thumbnail
프로그래머스 - 이상한 문자 만들기
알고리즘 2022. 2. 14. 18:00

String 타입 변수 s로부터 문자열을 입력받아 공백을 기준으로 각 단어의 짝수번째 알파벳은 대문자(인덱스 번호 0은 짝수), 홀수번째 알파벳은 소문자로 바꾸어 반환하는 함수를 작성하는 문제이다. 코드를 보며 설명하도록 하겠다. s를 String 타입 배열 arr로 만들기 위해 split() 메서드를 사용하였고, 각 단어마다 홀짝 중 어떤 알파벳인지 확인하기 위해 count 변수를 선언하여 0으로 초기화하였다. 6 ~ 20번째 줄이 문자열을 변환하는 과정이다. 반복문의 범위는 배열의 처음부터 끝까지이고 공백을 기준으로 나누기 때문에 equals() 메서드를 사용한 것을 볼 수 있다. 이 부분에서 사실 많은 애를 먹었다. 처음 내가 작성했던 코드는 'if(arr [i] == (" "))'이었는데 계속해서..

article thumbnail
프로그래머스 - 최대공약수와 최소공배수
알고리즘 2022. 2. 11. 18:00

int 타입 변수 n과 m을 입력받아 두 수의 최대공약수와 최소공배수를 구하여 배열로 반환하는 문제이다. 코드를 보며 확인해보도록 하겠다. 최대공약수와 최소공배수가 무엇인지에 대해서는 간단하게만 설명하겠다. 우선, 최대공약수는 임의의 두 수를 동시에 나누어 떨어지게 하도록 하는 숫자 중 가장 큰 수를 두 수의 최대공약수라 하고, 최소공배수는 두 수의 곱을 최대공약수로 나눈 것을 두 수의 최소공배수라고 한다. 다음은 코드를 보면서 설명하도록 하겠다. 어느 두 수의 최대공약수와 최소공배수를 구할 때 두 수를 동시에 나누어서 딱 떨어지는 숫자가 1을 제외하고 존재하지 않으면 두 수의 최대공약수는 1이 되고, 이때 최소공배수는 두 수의 곱이 된다. 하나의 예로 두 수 7과 11은 두 수를 동시에 나누어 떨어지게..

article thumbnail
프로그래머스 - 두 정수 사이의 합
알고리즘 2022. 2. 10. 18:00

int 타입 변수 a와 b를 입력받아 두 변수에 저장된 값을 포함하여 사이에 속한 모든 정수의 합을 반환하는 함수를 작성하는 문제이다. 코드를 확인하며 설명하도록 하겠다. 3번째 줄의 코드를 보면 a와 b는 int 타입이지만 answer는 long 타입인 것을 확인할 수 있는데, 문제 설명에 a와 b는 -10,000,000 이상 10,000,000 이하인 정수라는 조건이 있기 때문에 a와 b 사이의 값들을 전부 합하는 과정에서 int 타입의 범위를 넘어서게 되는 경우가 존재하기 때문에 answer는 long타입으로 선언을 하였다. 첫 번째 제한 조건인 a와 b에 저장된 값이 동일할 시 아무거나 반환해도 된다는 조건으로 4 ~ 5번째 줄의 코드를 완성하였다. 6 ~ 7번째 줄의 코드들이 a와 b사이에 존재..

article thumbnail
프로그래머스 - 문자열 내 p와 y의 개수
알고리즘 2022. 2. 8. 18:00

String 타입 변수 s에 저장된 문자열에 대소문자를 구분하지 않고 'p'와 'y'의 개수를 비교하여 같다면 true를 반환, 다르다면 false를 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 'p'와 'y'의 개수를 파악하기 위한 int 타입 변수 count1과 count2를 선언하고 0으로 초기화했다. 변수를 선언과 동시에 초기화하는 것은 습관을 들여놓는 것이 좋다. 초기화를 하지 않으면 변수에 'garbage'가 저장되어 있을 수 있기 때문에 에러를 발생시킬 수 있다. 5 ~ 10번째 줄의 코드들은 for 반복문을 통해 'p'와 'y'의 개수를 파악하는 문장이다. 먼저, 반복문의 범위를 인덱스의 시작인 0번부터 변수 s에 담긴 문자열의 크기 미만으로 잡았다. 이유는 인덱스의 시작은 0이기 ..

article thumbnail
프로그래머스 - 약수의 합
알고리즘 2022. 2. 3. 18:00

int 타입 변수 n으로부터 임의의 값을 입력받아 n에 저장된 값의 약수를 모두 더해 반환하는 함수를 작성하는 것이다. solution을 확인하기에 앞서 약수에 대해 먼저 설명하자면, 사전적 의미로는 어떤 정수를 나누어 떨어지게 하는 0이 아닌 정수라고 한다. 다시 말해, 약수는 1부터 자기 자신(n에 저장된 어떤 값)까지의 값들 중 어느 값이라도 자기 자신을 나누어 떨어지게끔 한다면 그 값은 n의 약수라는 뜻이다. 이제 solution을 보며 설명해보도록 하겠다. 약수는 어떤 정수(n에 저장된 값)를 나누어 떨어지게 하는 0이 아닌 정수를 칭한다고 하였다. n이 12라고 가정할 때 1부터 12까지의 수들 중 12를 나누어 떨어지게 하는 값을 찾기 위해 for 반복문을 사용하여 1부터 12까지의 모든 값..

728x90