Algorithms

Algorithms/프로그래머스

[프로그래머스] '영어가 싫어요' - Java

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 주어진 영단어를 숫자로 먼저 바꿔주는 데이터셋이 필요하였다. zero, one... nine (0~9)까지 numbers.replace("zero", "0"); 로 모두 바꿔준다. numbers = numbers.replace("zero", "0"); numbers = numbers.replace("one", "1"); numbers = numbers.replace("two", "2"); numbers = numbers.replace("three", "3"); numbers = numbers.repla..

Algorithms/프로그래머스

[프로그래머스] '팩토리얼' - Java

i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요. Try 1) int answer = 0; int temp = 1; int max = 0; // 1부터 n까지 올라가는 팩토리얼을 검사 for(int i = 1; i = 1; j--) { // temp 라는 변수에 j를 곱해서 팩토리얼 값을 저장함 temp *= j; // 이 팩토리얼 값이 n보다 커지는 순간 max에 값을 저장하고 break // max에 저장할때는 넘은 시점에서 판단되기때문에 넘기 전 시점을 판단하기 위해서 // i - 1을 해주었음 if(..

Algorithms/프로그래머스

[프로그래머스] '주사위의 개수' - Java

머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. 도형의 넓이를 구하는 문제였는데, 직육면체 상자 안에 정육면체 모양 주사위를 가득 채우는 문제이므로, 각 box의 가로, 세로, 높이를 구해 넓이를 구하는 문제이다. 주사위 모서리의 길이가 주어지므로 box의 인덱스 별로 n으로 나누어 구하는 문제이다. public class numbers_dice { public static int solution(int[] box, int ..

Algorithms/프로그래머스

[프로그래머스] '배열 회전시키기' - Java

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. temp를 통해 값을 간단히 회전시키면 될 것 같았다. Try 1) // IDE에서는 정상 출력이 되었으나, 프로그래머스 플랫폼에서 코드실행을 하면 실행값이 모두 0으로 출력되는 현상 int[] answer = new int[numbers.length]; int length = numbers.length; int last = length - 1; int temp = 0; if(direction == "right") { // 임시저장소에 끝값을 저장 temp = numbers[last]; /..

Algorithms/프로그래머스

[프로그래머스] '공 던지기' - Java

머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. [1,2,3,4,5,6] 에 횟수 5번일 경우 1 - 3 - 5 / 1 - 3 해서 3의 인덱스값인 2가 리턴되어야함 Try 1) public static int solution(int[] numbers, int k) { int answer = 0; int cnt = 0; int i = 0 ; int r = 0; while(true) { for(i = r; i < numbers...

Algorithms/프로그래머스

[프로그래머스] '구슬을 나누는 경우의 수' - Java

머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 경우의 수를 구하는 문제로, 팩토리얼을 구하는 문제이다. Try 1) // 분자의 역할 n! 구하기 int n_fac = 1; for(int i = balls; i >= 1 ; i--){ n_fac *= i; } // (n-m)! 구하기 int nm_fac = 1; for(int i = (balls - share); i >= 1 ; i--){ nm_fac *= i; } // 분모 중 ..

Algorithms/프로그래머스

[프로그래머스] '2차원으로 만들기' - Java

정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. 1차원배열을 2차원배열로 만드는 문제였다. 대신 n개씩 나누는 매개변수 n이 주어지는데, 이 n은 n * x 배열로 만들어진다는 의미이다. = 한 행당 n개 /* 테스트케이스 answer[0][?] = [1,2] answer[1][?] = [3,4] answer[2][?] = [5,..

Algorithms/프로그래머스

[프로그래머스] '모스부호 (1)' - Java

머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 모스부호는 정해진 패턴이 있으므로 그에 해당하는 데이터셋을 만들어야했다. Try 1) // answer에 더해지지 않음, 비효율적 String[] list = letter.split(" "); for(int i = 0; i < list.length; i++) { String cp = list[i]; if(cp == ".-") answer+= "a"; else if(cp == "-...") answer+= "b"; else if(cp == "-...

Algorithms/프로그래머스

[프로그래머스] '순서쌍의 개수' - Java

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요. 특정 숫자가 정해질때 두 숫자의 곱이 그 특정숫자가 되도록 하는 숫자 순서쌍을 찾는 문제이다. Try 1) 시간 초과 및 모든 테스트 통과 실패 /* >> 두번째 반복문에서 조건식을 생략했던 점이 시간초과의 원인인 것 같았다. >> 실제 곱셈 로직을 생각하기보다 어떻게하면 answer값이 증가될 수 있을지 생각해야할 것 같았다. */ // 첫번째 매개변수 (이중 반복문 처리) for(int i = 1; i

LEFT
'Algorithms' 카테고리의 글 목록 (7 Page)