본문 바로가기

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

[Lv.0] 한 번만 등장한 문자 https://school.programmers.co.kr/learn/courses/30/lessons/120896 원래하려고 했던 방법이 되지않아서, 고민하다가 다른 방식을 참고해서 작성했다. 우선은 알파벳의 갯수만큼 길이 26인 배열 charList를 선언한다. 그후 반복문을 활용해 charList에 문자열 s에 0번째부터 마지막자리수 까지 charAt()을 활용해 문자로 형변환 한 후 소문자 a를 뺀다 그렇게 하면 s[0]이 a일경우 a-a(=아스키코드 97-97)로 0이 될 것이고 알파벳의 길이만큼 배열의 길이를 설정한 charList의 0번째 자리가 증감연산자"++"에 의해 증가할 것이다. 그 후 springBuilder sb를 선언한다. 또 다른 반복문을 활용해 charList에서 그 값이 1.. 2023. 3. 20.
[Lv.0] 7의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120912?language=java 7의 개수를 세어야 하는데 array의 원소의 조건에 따라 77이나 177, 777 같은 숫자들도 있을 수 있기 때문에 해당하는 7의 개수들도 다 세주어야 한다. 반복문을 활용해 array에 존재하는 모든 숫자들을 Integer.toString()을 활용해 String으로 형변환해서 저장한다. 그 후 해당 문자열들을 String.split("원하는 분할문자")를 활용해 분리해보자. 여기서는 ""만을 사용해서 분할하여 아래와같은 결과를 얻었다. 분리한 문자들은 String 배열 arr에 저장하였다. 반복문을 하나 더 사용하고 if문에서 조건식으로 a.contains.. 2023. 3. 19.
[Lv.0] 공 던지기 https://school.programmers.co.kr/learn/courses/30/lessons/120843 1번 사람부터 시작하되 한명을 건너뛰고 그 다음 사람에게 공을 전달하기 때문에 배열의 인덱스는 2씩 증가하게 된다. 2씩 증가하는 인덱스에 시작은 1번사람부터 던지기는 고정되어 있는 조건이기 떄문에 던지는 횟수에서 1을 뺀다. 그리고 한바퀴 이상을 돌았을 수 있기 때문에 인원수만큼 나눈 나머지값을 리턴시켜주면 된다. class Solution { public int solution(int[] numbers, int k) { int answer = numbers[2*(k-1)%numbers.length]; return answer; } } 2023. 3. 13.
[Lv.0] 진료 순서 정하기 https://school.programmers.co.kr/learn/courses/30/lessons/120835 위급도가 높은 순서대로 먼저 진료를 해야하기 때문에 위급도가 낮다면 순서가 뒤로 밀리게 된다. 그래서 배열 emergency안에 있는 숫자들을 비교해서 만약 해당 위치의 위급도가 다른위치의 위급도들보다 낮다면 숫자를 증가시키는 방향으로 진행하였다. answer에는 emergency의 길이만큼을 선언/초기화 해주었고, 이중반복문을 활용해 0번째 위치에 있는 숫자와 마지막에 있는 숫자들을 비교하게 만들어준다. emergency[i]의 값을 기준으로 해당 값이 emergency[j] 보다 작다면 위급도가 낮은것이기 때문에 해당 자리와 일치하는 answer의 숫자를 증감연산자를 이용해 1씩 증가한.. 2023. 3. 13.
[Lv.0] 2차원으로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120842 제한조건에 num_list의 길이는 n의 배수라는 조건이 있다. 2차원배열인 answer를 선언 및 초기화를 위해서 num_list.length/n 과 n을 넣는다. 그 이유는 사진으로 보자. 아래 사진은 int[][] a = new int[4][2]; 의 사진이다. 2개씩 숫자가 들어간 배열들이 총 4개가 들어가있다. 또 배열 num_list를 n개만큼 나눠서 그걸 2차배열로 만들어주는게 문제이다. 그렇기 때문에 n개의 숫자가 들어간 배열이 총 num_list의 길이/n 만큼 필요한것이다. 이중 for 문을 사용할 것이다. 그럼 먼저 어떤게 필요한지 생각해보자. 먼저 필요한건 안에 배열들.. 2023. 3. 10.
[Lv.0] k의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/120887 정수 i~j 까지를 구해야하기 때문에 반복문을 사용해 i~j까지 String 변수명 st에 Integer.toString()을 이용해 형변환 후 넣어주자. 이러면 st에는 값들이 계속 덮어 씌워지는 셈이니 이 반복문 안에서 문제를 해결하자. 반복문안에 0부터시작해서 st의 길이만큼 반복하는 반복문을 작성한다. 이 st 안에 정수 k 가 존재하면 된다. st는 String, k는 int이므로 둘을 비교하기 위해선 k를 아까 사용했던 Integer.toString()을 활용해 형변환 후 .equals를 이용해 st에 있는 문자들이 k와 일치하는지 알아보자 그런데 문제 조건에 의해 만약 k가 1.. 2023. 3. 7.
[Lv.0] A로 B 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120888 List 변수명 arr을 초기화해준다. for문을 활용해 0부터 my_string의 길이만큼 진행하고. String.valueOf()를 이용해 String으로 형변환을 할 수 있고, my_string.charAt(i)을 활용해 my_string의 0부터 길이수까지 진행하니 배열의 0번째 자리부터 마지막자리까지 비교해서 if문을 이용해 List인 arr에 해당 글자가 없다면 arr에 add하는 방식으로 진행하였다. 위에서처럼 만약 List arr에 이미 특정문자가 들어가 있다면 같은 문자가 들어가지는 않는다. 그 후 String으로 리턴해주기 위해서 List인 answer에 String.jo.. 2023. 3. 6.
[Lv.0] A로 B 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120886 before와 after를 toCharArray()를 이용해 전부 char 배열로 변경한다. 그 후 Arrays.sort()를 이용해 a-z까지 정렬한다. for문을 활용해 정렬된 char배열 두개의 같은 위치에 같은 문자가 위치해있다면 int 인 size에 1씩 증가시켜준다. 그렇고 size에 1씩 누적이 될 것이고 두 배열이 일치하지 않는 부분이 있다면 1이 증가되지 않고 before의 길이만큼 size의 숫자가 증가하지 않을 것이다. size가 비교할 대상인 before의 길이와 일치하다면, 1을 그렇지 않다면 0을 리턴해준다. import java.util.*; class Solut.. 2023. 3. 6.
[Lv.0] 모스부호(1) https://school.programmers.co.kr/learn/courses/30/lessons/120838 보자마자 당황했다. 이런?걸 보면 신기하면서도 재밌을꺼 같긴한데 어떻게 해야할지 몰라서 한참을 고민해보았다. 우선 String 배열에 morse라는 변수명으로 모스부호들을 선언해준다. 문자열 letter는 공백으로 나누어져 있다고 했기에 String배열 letterArr에 letter를 띄어쓰기 기준으로 나눠서 넣어준다 이중 for문을 사용하자 이중for문을 사용할 땐 안에 for문에 어떤걸 먼저 넣어야할지 생각해보자 안에 있는 for문에는 letterArr와 morse를 비교해서 일치하다면 어떠한 처리를 하면 될 것이다. if문에서 letterArr[i] 번째 문자와 morse[j]번째 .. 2023. 3. 3.
[Lv.0] 문자열 정렬하기(2) https://school.programmers.co.kr/learn/courses/30/lessons/120911 가장 먼저 대문자, 소문자가 섞여있는 문자열 my_string을 toLowerCase()를 활용해 소문자로 변경해주자. 문자열에 속한 문자들을 하나하나 비교할 수 없으니 char 배열로 변경해서 비교하자 toCharArray()를 이용해 char[] 배열 arr에 소문자 문자열 temp를 넣어주자. 그 후 Arrays.sort()를 이용해서 오름차순으로 정렬해주고 char 배열인 arr를 String으로 변환 후 리턴해주면 된다. import java.util.*; class Solution { public String solution(String my_string) { String tem.. 2023. 3. 2.