[프로그래머스] 순서쌍의 개수 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 11. 22]  풀이class Solution { public int solution(int n) { int count = 0; for (int i = 1; i   이 문제를 보자마자 이중 for문으로 i * j 를 곱했을 때 n이 나오면 순서쌍이므로 count를 증가시켜주면 될 것이라 생각했는데 해당 코드로는 몇 개의 테스트에서 시간초과가 난다. i * j를 할 필요 없이 i * j는 n을 i로 나눴을 때 나머지가 0인 것과 같으므로 for문을 한 번만 돌려도 문제를 풀 수 있다. 예를 들면 n이 20일 때 4 * 5 는 20으므로 4와 5는 순서쌍이다.내가 푼 문제에 대입보면 20 % 5의 나머지는 0이 되므로 더 간단한 코드를 작성할 수 있다.
[프로그래머스] 배열의 길이를 2의 거듭제곱으로 만들기 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 11. 10]  풀이import java.util.Arrays;class Solution { public int[] solution(int[] arr) { int arrLength = arr.length; int length = 1; while (length  2, 4, 8, 16, 32... 처럼 2를 여러번 곱한 것을 2의 거듭제곱이라고 한다.우선 주어지는 arr의 length가 2의 거듭제곱인지 확인하기 위해 length라는 변수의 값을 1로 초기화 하고 while문으로 length의 길이와 arr.length의 길이를 비교했다.length가 arr.length보다 작을 경우 length에 2를 누적해서 곱해준다. (거듭제곱을 저장하기..
[프로그래머스] 세 개의 구분자 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 10. 26]  풀이import java.util.ArrayList;import java.util.List;class Solution { public String[] solution(String myStr) { List answer = new ArrayList(); StringBuilder sb = new StringBuilder(); for (int i = 0; i 0) { answer.add(sb.toString()); sb.setLength(0); } } else { sb.append(myStr..
[프로그래머스] x 사이의 개수 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 10. 22]  풀이import java.util.ArrayList;import java.util.List;class Solution { public int[] solution(String myString) { List list = new ArrayList(); int index = 0; for (char c : myString.toCharArray()) { if (c == 'x') { list.add(index); index = 0; } else { index++; } } li..
[프로그래머스] 조건에 맞게 수열 반환하기 2 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 10. 18]  풀이class Solution { public int solution(int[] arr) { int answer = 0; int count = 0; while(count =50 && arr[i] % 2 == 0) { arr[i] /= 2; } else if (arr[i]  아 이 문제 쉬운 거 같으면서도 헷갈려서 머리 터질 뻔 했다...분명히 맞게 풀었는데도 답이 5가 아니라 4가 나와서 하루종일 고민하다가 그냥 구글링의 도움을 받았다. 우선 count라는 변수를 만든다. 문제의 조건에 나왔던 원소가 50보다 크고 짝수거나, 원소가 50보다 작고 홀수인 경우 외에는..
[프로그래머스] 배열 만들기 2 - JAVA
·
Algorithm/프로그래머스
[작성일: 2023. 10. 11]  풀이import java.util.ArrayList;import java.util.List;class Solution { public int[] solution(int l, int r) { List list = new ArrayList(); for (int i = l; i 0) { int digit = num % 10; if (digit != 0 && digit != 5) { isValid = false; break; } num /= 10; }..