본문 바로가기

프로그래머스 문제풀어보기61

[Lv.0] 369게임 https://school.programmers.co.kr/learn/courses/30/lessons/120891# 이것저것 시도하다가 해당방법으로 해결했다. 우선 정수 order를 String.valueOf()를 이용해 문자열로 바꿔준다. 반복문을 활용해 문자열 num의 자릿수(길이) 만큼 반복해준다. 문자열 num의 0번째에 있는 숫자를 문자 변수명 samyukgu에 담아준다. 만약 문자 samyukgu가 3 이거나(or) 6이거나 9일 떄 answer에 1을 증가시켜주면서 num의 길이만큼 반복한다. 이렇게 문자열 num에 모든 자리 숫자를 비교해서 3,6,9가 있다면 그 수 만큼 answer를 리턴해준다. import java.util.*; class Solution { public int so.. 2023. 3. 2.
[Lv.0] 약수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/120897 정수 n이 어떤 수 인지 모르기 때문에 몇개의 약수를 가지고 있는지 알 수 없다. 그렇기 때문에 고정된 길이를가진 배열을 사용하지 않고 가변배열인 ArrayList를 사용하여 answerList라는 변수명으로 선언한다. 반복문을 사용해 1부터 시작해 정수 n까지 반복하는데 정수 n이 1부터시작해서 1씩 증가하는 i 와 나누었을 때 몫이 0인것이 정수 n의 약수라고 할 수 있으니 해당 i 들을 arrayList에 add한다. 이 상태로 실행을 했을 때 메서드의 형식이 맞지 않아 오류가 뜨게 된다. 이제 형변환을 해줄 것이다. stream을 활용해 ArrayList를 Array로 형변환 한다... 2023. 3. 2.
[Lv.0] 피자 나눠 먹기(2) https://school.programmers.co.kr/learn/courses/30/lessons/120815 해당 문제는 사람수 n과 피자 한판의 조각수인 6을 이용해 최소공배수와 최대공약수 를 구해서 풀면 된다. 유클리트 호제법(Euclidean Algorithm)을 이용해 최소공배수와 최대공약수를 구할 것이다. 우선 삼항연산{(조건문)? 참:거짓} 을 이용해 사람수 n과 피자 한판의 조각수인 6중 가장 큰 값을 변수명 larger에 저장한다. 최대공약수를 구하기 위한 변수명 gcd를 선언하고 정수 1부터 larger까지 반복문을 실행한다. 유클리드 호제법에서 최소공배수(LCM)를 구하는 공식은 LCM = a*b/최대공약수(GCD) 이다. 이제 최소공배수(=인원n이 똑같은 피자개수를 먹기위해 필.. 2023. 2. 28.
[Lv.0] 가장 큰 수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/120834 0~9를 a부터 j까지 바꿔주면 되는 문제다. Integer.toString(int) 를 사용해 문자열 changed에 age를 String으로 형변환 해준다. 그 후 문자열 changed의 길이만큼 반복문을 사용해 반복해 바꿔주자. 여기서 length와 length()의 차이는 아래와 같다. length -> 배열의 길이 length() -> 문자열의 길이 문자열 answer에 숫자에서 소문자로 변경해준 값을 넣어줄건데 chatAt(int) 함수를 사용했다. int 자리에 int형 변수를 넣어서 원하는 위치의 문자를 가지고 올 수 있다,. 문자열 changed의 0번째 글자를 가져와 49.. 2023. 2. 27.
[Lv.0] 가장 큰 수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/120899 이번에도 단순하게 풀었다. int 배열 answer의 값은 [최대값,최대값의 위치값]으로 고정되어 있기때문에 new int[2]로 선언을 해준다. 그 후 배열 array 길이의 -1 반복조건문을 설정한다. 왜냐하면 array[i+1]이라는 식이 있는데 array의 길이만큼만 실행하게 된다면, 본길이보다 +1의 값을 비교하라고 하는 탓에 컴파일 에러가 난다. 그래서 array의 i번째 숫자가 i+1보다 크다면 answer[0]에 array의 i번째에 해당하는 숫자를 넣고 answer[1]에는 i를 저장한다. 그 반대의 상황인 array[i+1]이 array[i]보다 크다면 answer[0]에.. 2023. 2. 26.
[Lv.0] 인덱스 바꾸기 https://school.programmers.co.kr/learn/courses/30/lessons/120895 단순하게 변경하였다. 우선 문자열 my_string을 toCharArray()를 이용해 배열로 변경해서 변수명 arr에 지정해준다. 배열 arr에 num1 번째와 num2번째의 문자를 각각 first 와 second로 지정해주고, 배열 arr에 num1 번째에 second를 넣어버리고 num2에 first를 넣어버린 후 배열 arr를 다시 String.valueOf()를 이용해 문자열로 변환해준다. import java.util.*; class Solution { public String solution(String my_string, int num1, int num2) { String a.. 2023. 2. 26.
[Lv.0] 최댓값 만들기(2) https://school.programmers.co.kr/learn/courses/30/lessons/120862 Arrays.sort(); 를 이용해 배열 numbers를 작은 순서대로 정렬한다. 그 후 numbers 배열의 제일 첫번째에 있는 숫자와 두번째 숫자를 곱한 값을 Max1에 저장한다. 여기서 첫번째 숫자와 두번째 숫자가 둘다 음수라면 양수가 되기에 가장 큰 숫자일 수도 있다. 그리고 numbers 배열의 길이에서 -1을 빼서 제일 뒤에 있는 숫자와 -2를 빼서 뒤에서 두번째에 있는 숫자를 곱한 갑을 max2에 저장한다. 마지막으로 조건문을 이용해 max1가 max2보다 크다면 answer 에 max1로 선언하고, 그 반대라면 max2를 선언한다. import java.util.*; cla.. 2023. 2. 25.
[Lv.0] 주사위의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120845 box[0] : 가로, box[1] : 세로, box[2] : 높이 이므로 주사위의 모서리의 길이인 n으로 나눈값을 곱해서 리턴해주면 된다. class Solution { public int solution(int[] box, int n) { int answer = 0; int width = box[0]/n; int length = box[1]/n; int height = box[2]/n; return width*length*height; } } 2023. 2. 25.
[Lv.0] 직각삼각형 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/120823 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String star = "*"; for(int i =0; i 2023. 2. 25.
[Lv.0] n의 배수 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/120905 class Solution { public int[] solution(int n, int[] numlist) { int[] arr = new int[numlist.length]; int num = 0; for(int i =0; i 2023. 2. 24.