[프로그래머스] 문자열 내 마음대로 정렬하기 - JAVA
·
알고리즘
[작성일: 2024. 03. 09]  풀이import java.util.Arrays;class Solution { public String[] solution(String[] strings, int n) { String[] list = new String[strings.length]; String[] answer = new String[strings.length]; for (int i = 0; i  strings 문자열 배열에서 문제에 주어진 n 인덱스 + strings[i]를 한 문자열을 list[i]에 저장한다.예를 들어 strings[i]에 abcd가 저장되어 있고, n이 3이라면 list[i]에는 dabcd가 저장된다.Arrays.sort를 사용하면 자연..
[프로그래머스] 이진수 더하기 - JAVA
·
알고리즘
[작성일: 2024. 01. 28]  풀이class Solution { public String solution(String bin1, String bin2) { int num1 = Integer.valueOf(bin1, 2); int num2 = Integer.valueOf(bin2, 2); int sum = num1 + num2; String answer = Integer.toBinaryString(sum); return answer; }} Integer.valueOf는 String 타입을 Integer로 형변환 할 때만 사용하는 줄 알았는데, radix 부분에 변환할 진수를 넣으면 진수로 변환된다는 것을 처음 알았다.num1과..
[프로그래머스] 숨어있는 숫자의 덧셈(2) - JAVA
·
알고리즘
[작성일: 2024. 01. 15]   풀이class Solution { public int solution(String my_string) { int answer = 0; String[] arr = my_string.replaceAll("[a-zA-Z]", " ").split(" "); for (int i = 0; i   이 문제는 replaceAll과 정규식을 사용하면 쉽게 풀 수 있다."[a-zA-Z]"는 소문자와 대문자를 의미하며 " "로 replace한다는 뜻이 된다.즉 주어진 문자열에서 숫자를 제외한 영어는 공백으로 대체된다.  그 후 my_string을 공백으로 split 해서 String[] arr에 담는다. aAb1B2cC34Oop라는 my_st..
[프로그래머스] 문자열 밀기 - JAVA
·
알고리즘
[작성일: 2023. 11. 30]  풀이 1class Solution { public int solution(String A, String B) { int answer = 0; String C = A; for (int i = 0; i  풀이 1은 내가 푼 방법으로 C라는 String 변수를 만들어서 A를 대입한다. 첫 반복문에서 C와 B가 같다면 문자열을 밀어야 할 필요가 없으므로 0을 리턴한다.그렇지 않다면 D라는 String 변수를 만들어서 C.substring(C.length() - 1)을 대입한다. substring에 파라미터를 1개만 전달하면 전달된 파라미터 인덱스부터 문자열 끝까지 자른다.C.length() - 1을 파라미터로 넘겼으므로 C가 abc..
[프로그래머스] 순서쌍의 개수 - JAVA
·
알고리즘
[작성일: 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
·
알고리즘
[작성일: 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를 누적해서 곱해준다. (거듭제곱을 저장하기..