전체 글

-
[문제 설명] [문제 풀이] 문제를 한 번 풀고 난 후, 개선된 방법으로 다시 문제를 풀었다. 처음엔 대문자와 소문자를 나누어 각각의 배열에 저장한 후 정렬했다. 정렬된 배열들을 1개의 배열로 합쳤다. 해당 방법으로 문제를 풀고 과거의 나는 어떻게 풀었을지 궁금해 예전에 했던 걸 찾아보았다. 2번째 코드는 예전과 한 것을 사용한 것이다. 아스키코드에서 대문자는 소문자보다 정수값이 작다. 이를 활용해 문제를 풀었다. 문자형의 정수값을 배열에 저장한 후, 이를 정렬한다. 그리고 다시 문자형으로 변환해 결과를 반환한다. 위 코드는 동일하게 아스키 코드를 사용했지만, 아스키코드 값을 사용하지 못한 예시다. 아래 코드가 더 깔끔하게 문제를 푼 코드라고 생각한다. [소스 코드]
[프로그래머스]Level 1 문자열 내림차순으로 배치하기[문제 설명] [문제 풀이] 문제를 한 번 풀고 난 후, 개선된 방법으로 다시 문제를 풀었다. 처음엔 대문자와 소문자를 나누어 각각의 배열에 저장한 후 정렬했다. 정렬된 배열들을 1개의 배열로 합쳤다. 해당 방법으로 문제를 풀고 과거의 나는 어떻게 풀었을지 궁금해 예전에 했던 걸 찾아보았다. 2번째 코드는 예전과 한 것을 사용한 것이다. 아스키코드에서 대문자는 소문자보다 정수값이 작다. 이를 활용해 문제를 풀었다. 문자형의 정수값을 배열에 저장한 후, 이를 정렬한다. 그리고 다시 문자형으로 변환해 결과를 반환한다. 위 코드는 동일하게 아스키 코드를 사용했지만, 아스키코드 값을 사용하지 못한 예시다. 아래 코드가 더 깔끔하게 문제를 푼 코드라고 생각한다. [소스 코드]
2022.11.27 -
[문제 설명] [문제 풀이] 처음 HashMap을 사용해 Key값이 존재하는 dictionary로 풀었었다. 하지만, 동일한 키값을 처리하지 못해 해당 방법으로 문제를 해결하지는 못했다. Java에서의 배열 및 리스트 정렬 방법과 lambda 형식에 대해서 알아보았고 이를 통해 최종적으로 문제를 풀 수 있었다. 가장 먼저, 주어진 String 배열의 요소들에서 n 자리에 위치한 알파벳들을 꺼내 2차원 String 배열의 0번째 인덱스에 저장했다. 해당 값을 key값으로 사용하기 위함이다. 이후, 문자열을 그대로 1번째 인덱스에 저장한다. 기준 정렬을 하기 위해, Java의 lambda식을 사용했다. 만약 key값이 동일하고 string의 값이 다르다면 string값을 기준으로 정렬한다. key값이 다르다..
[프로그래머스]Level 1 문자열 내 마음대로 정렬하기[문제 설명] [문제 풀이] 처음 HashMap을 사용해 Key값이 존재하는 dictionary로 풀었었다. 하지만, 동일한 키값을 처리하지 못해 해당 방법으로 문제를 해결하지는 못했다. Java에서의 배열 및 리스트 정렬 방법과 lambda 형식에 대해서 알아보았고 이를 통해 최종적으로 문제를 풀 수 있었다. 가장 먼저, 주어진 String 배열의 요소들에서 n 자리에 위치한 알파벳들을 꺼내 2차원 String 배열의 0번째 인덱스에 저장했다. 해당 값을 key값으로 사용하기 위함이다. 이후, 문자열을 그대로 1번째 인덱스에 저장한다. 기준 정렬을 하기 위해, Java의 lambda식을 사용했다. 만약 key값이 동일하고 string의 값이 다르다면 string값을 기준으로 정렬한다. key값이 다르다..
2022.11.27 -
모의고사 [문제 설명] [문제 풀이] 각각의 사람들이 몇 문제를 맞춘지 확인한 후, 맞춘 갯수의 최댓값을 구한다. 최댓값과 동일한 사람들은 결과 배열에 입력하고 해당 값을 반환해준다. [소스 코드]
[프로그래머스]Level 1 모의고사모의고사 [문제 설명] [문제 풀이] 각각의 사람들이 몇 문제를 맞춘지 확인한 후, 맞춘 갯수의 최댓값을 구한다. 최댓값과 동일한 사람들은 결과 배열에 입력하고 해당 값을 반환해준다. [소스 코드]
2022.11.27 -
로또의 최고 순위와 최저 순위 [문제 설명] [문제 풀이] 현재 문제에서 잃어버린 당첨번호는 0으로 표시된다. 0이 모두 당첨번호일 때, 최고 등수일 것이고 모두 당첨번호가 아닐 때, 최저 등수일 것이다. 이를 활용해 문제르 풀어보자. 우선 0을 제외한 실제로 맞춘 개수를 구한다. 이후, 0의 개수를 구하고 실제로 맞춘 개수 + 0의 개수를 해 최고 등수일 때의 맞춘 개수를 구한다. 0의 개수를 더하지 않은 실제로 맞춘 개수는 자동으로 최저 등수일 때의 맞춘 개수가 될 것이다. 현재 우리가 구해야 하는 것은 맞춘 개수가 아닌 등수이기에 맞춘 개수를 뒤집어 등수를 구한다. [소스 코드]
[프로그래머스]Level 1 로또의 최고 순위와 최저 순위로또의 최고 순위와 최저 순위 [문제 설명] [문제 풀이] 현재 문제에서 잃어버린 당첨번호는 0으로 표시된다. 0이 모두 당첨번호일 때, 최고 등수일 것이고 모두 당첨번호가 아닐 때, 최저 등수일 것이다. 이를 활용해 문제르 풀어보자. 우선 0을 제외한 실제로 맞춘 개수를 구한다. 이후, 0의 개수를 구하고 실제로 맞춘 개수 + 0의 개수를 해 최고 등수일 때의 맞춘 개수를 구한다. 0의 개수를 더하지 않은 실제로 맞춘 개수는 자동으로 최저 등수일 때의 맞춘 개수가 될 것이다. 현재 우리가 구해야 하는 것은 맞춘 개수가 아닌 등수이기에 맞춘 개수를 뒤집어 등수를 구한다. [소스 코드]
2022.11.27 -
두 개 뽑아서 더하기 [문제 설명] [문제 풀이] 서로 다른 인덱스에서 값들을 꺼내 연산을 한 결과들에 중복이 존재할 수 있다. 해당 경우를 결과를 저장할 배열에 넣는다면 중복된 값을 하나로 합쳐야 하는 추가 작업시 생성된다. 결과 배열에 넣기 전부터 중복된 값이 있는지 확인 후, 있다면 넣지 않는 방향으로 문제를 푸는 것이 효율적이다. flag 배열을 만들고 임의의 두 수를 더 한 결과를 인덱스로 사용해 해당 수가 연산의 결과로 나온 적이 있는지 체크한다. 체크를 위해 나온적이 있다면 해당 인덱스에 1을 저장하고 아니면 아무것도 저장하지 않는다. 모든 연산이 끝나면 배열을 오름차순으로 정렬해 반환한다. [소스 코드]
[프로그래머스]Level 1 두 개 뽑아서 더하기두 개 뽑아서 더하기 [문제 설명] [문제 풀이] 서로 다른 인덱스에서 값들을 꺼내 연산을 한 결과들에 중복이 존재할 수 있다. 해당 경우를 결과를 저장할 배열에 넣는다면 중복된 값을 하나로 합쳐야 하는 추가 작업시 생성된다. 결과 배열에 넣기 전부터 중복된 값이 있는지 확인 후, 있다면 넣지 않는 방향으로 문제를 푸는 것이 효율적이다. flag 배열을 만들고 임의의 두 수를 더 한 결과를 인덱스로 사용해 해당 수가 연산의 결과로 나온 적이 있는지 체크한다. 체크를 위해 나온적이 있다면 해당 인덱스에 1을 저장하고 아니면 아무것도 저장하지 않는다. 모든 연산이 끝나면 배열을 오름차순으로 정렬해 반환한다. [소스 코드]
2022.11.27 -
같은 숫자는 싫어 [문제 설명] [문제 풀이] 주어진 배열의 첫번째 값은 무조건 결과 배열에 들어간다. 배열의 첫번째 값을 가장 먼저 result 배열에 삽입한 후, 다른 값들과 비교하기 위한 값으로 사용한다. 반복문을 통해 배열을 순회하면서 flag값과 다르다면 중복되지 않는 값이기에 해당 값을 결과 배열에 넣고 만약 flag값과 동일하다면 중복된 값이기에 배열에 넣지 않는다. 이를 통해, 결과 배열을 얻는다. [소스 코드]
[프로그래머스]Level 1 같은 숫자는 싫어같은 숫자는 싫어 [문제 설명] [문제 풀이] 주어진 배열의 첫번째 값은 무조건 결과 배열에 들어간다. 배열의 첫번째 값을 가장 먼저 result 배열에 삽입한 후, 다른 값들과 비교하기 위한 값으로 사용한다. 반복문을 통해 배열을 순회하면서 flag값과 다르다면 중복되지 않는 값이기에 해당 값을 결과 배열에 넣고 만약 flag값과 동일하다면 중복된 값이기에 배열에 넣지 않는다. 이를 통해, 결과 배열을 얻는다. [소스 코드]
2022.11.27 -
최소직사각형 [문제 설명] [문제 풀이] 가로 길이와 세로 길이가 나누어져 있지만, 사실 각각의 명함에서 긴 변과 짧은 변들을 묶은 후, 해당 그룹에서 가장 긴 변을 구하면 되는 문제이다. 왜냐하면 명함은 가로였던 것이 단순히 옆으로 돌리면 또 다른 가로가 되는 것이다. 즉, 가로 세로라는 말이 의미가 없다. 각 명함의 가로 세로를 정렬한 후, 짧은 것을 low_num 배열에, 긴 것을 hight_num 배열에 삽입했다. 이후, 각 배열을 정렬해 가장 긴 항목들끼리 곱셈 연산을 하면 된다. [소스 코드]
[프로그래머스]Level 1 최소직사각형최소직사각형 [문제 설명] [문제 풀이] 가로 길이와 세로 길이가 나누어져 있지만, 사실 각각의 명함에서 긴 변과 짧은 변들을 묶은 후, 해당 그룹에서 가장 긴 변을 구하면 되는 문제이다. 왜냐하면 명함은 가로였던 것이 단순히 옆으로 돌리면 또 다른 가로가 되는 것이다. 즉, 가로 세로라는 말이 의미가 없다. 각 명함의 가로 세로를 정렬한 후, 짧은 것을 low_num 배열에, 긴 것을 hight_num 배열에 삽입했다. 이후, 각 배열을 정렬해 가장 긴 항목들끼리 곱셈 연산을 하면 된다. [소스 코드]
2022.11.27 -
3진법 뒤집기 [문제 설명] [문제 풀이] 주어진 수를 String형 및 3진법으로 변환 후, 해당 수를 그대로 reverse함수를 통해 뒤집는다. 이후, 해당 수를 다시 10진법으로 변환하면 정답이 된다. [소스 코드]
[프로그래머스]Level 1 3진법 뒤집기3진법 뒤집기 [문제 설명] [문제 풀이] 주어진 수를 String형 및 3진법으로 변환 후, 해당 수를 그대로 reverse함수를 통해 뒤집는다. 이후, 해당 수를 다시 10진법으로 변환하면 정답이 된다. [소스 코드]
2022.11.27