프로그래밍 99

[프로그래머스] 최댓값과 최솟값

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 문자열을 기준에 맞추어 나누고 int 타입으로 변환 후 모든 값을 비교하여 최솟값과 최댓값을 구함 import java.util.Arrays; public class Q30_12939 { public String solution(String s) { int[] numbers = Arrays.stream(s.split(" ")) .mapToInt((item -> Intege..

[프로그래머스] 하노이의 탑

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 재귀의 가장 대표적인 예 n개의 원판을 목표 기둥으로 옮기기 위해서는 n번째를 옮기기 전에 1번째부터 n - 1번째까지의 원판이 남은 기둥에 모두 옮겨져 있어야 n번째 원판을 목표 기둥으로 옮길 수 있음 그리고 남은 기둥에 옮겨져 있던 1번째부터 n - 1번째까지의 원판을 목표 기둥의 n번째 원판 위로 옮겨야 함 재귀 함수의 구분을 1번째부터 n - 1번째까지의 묶음과 n..

[프로그래머스] 귤 고르기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 귤의 각각의 크기의 수를 취합하여 크기의 수가 가장 낮은 순서대로 귤을 제거 한 후 귤의 크기 종류의 수를 반환 import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; public class Q30_138476 { public int solution(int k, int[] tanger..

[프로그래머스] 점 찍기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 찍을 수 있는 점괴 (0, 0)점의 거리를 모두 구하면서 찍을 수 있는 점을 구하는 것은 효율적이지 못함 x좌표와 d의 거리에 따라서 y좌표의 최대값을 구한 다음에 그 사이에서 k의 배수의 점의 갯수를 구하는 방법으로 풀이 또한 d의 값의 범위로 인하여 제곱 하는 경우 오버플로우가 발생 하기 때문에 long 타입으로 처리 public class Q30_140107 { p..

[프로그래머스] 가장 가까운 같은 글자

문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 문자열 0번째부터 진행 하면서 앞쪽의 같은 문자의 유무를 탐색하게 되면 이중 루프로 구현을 해야 하며 그렇게 된다면 최악의 시나리오에서 효율성이 좋지 않음 문자열을 0번째부터 그 문자와 index를 저장하는 Map을 활용하여 현재 index와 해당 문자의 바로 전 index를 Map에서 조회하여 처리 import java.util.HashMap; import java.u..

[프로그래머스] 문자열 나누기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 별도의 풀이가 있는 것이 아니고 문제 설명대로 구현 public class Q30_140108 { public int solution(String s) { String[] list = s.split(""); int length = list.length; if (length == 0) { return 0; } int answer = 0; int index = 0; int ..

[프로그래머스] 명예의 전당 (1)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 상위 k번째 점수와 당일 노래의 점수와 비교하여 최저점의 목록을 반환해야 하므로 점수를 비교 할 목적의 배열을 k + 1 길이로 선언한 다음에 노래의 점수가 0점이 존재 하므로 0점을 고려하여 -1로 초기화 당일 노래의 점수를 0번째에 할당하고 오름차순으로 정렬하면 점수 비교 배열에서 1번째에서 k번째 사이에서 -1이 아닌 점수 중 가장 낮은 점수가 그 날의 명예의 전당..

[프로그래머스] 행렬의 곱셈

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 일반적인 행렬의 곱셈을 그대로 구현 public class Q30_12949 { public int[][] solution(int[][] arr1, int[][] arr2) { int xLength = arr1.length; int yLength = arr2[0].length; int zLength = arr2.length; int[][] answer = new int[x..

[프로그래머스] N개의 최소공배수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 최소 공배수는 유클리드 호제법을 이용하여 0번째 수와 1번째 수의 최소 공배수를 구한 후 최소 공배수와 2번째 수의 최소 공배수를 구하고 이를 반복하여 배열의 마지막 까지 최소 공배수를 구하여 반환 import java.util.Arrays; public class Q30_12953 { public int solution(int[] arr) { Arrays.sort(arr..

[Intellij] 에디터에서 코드를 수정할 때 반응이 느리거나, 스크롤 버벅임 현상

intellij로 웹프로젝트를 열어 작업을 하거나 java 프로젝트에서 동적으로 문자열을 생성하는 것이 아니고 많은 양의 문자열 상수를 덧셈 코드를 하드코딩하여 변수에 할당하는 코드가 화면에 렌더링 되는 순간 스크롤 자체가 버벅이며 키보드 입력에 대한 반응이 길게는 2초 이상 늦게 입력이 되는 intellij 에디터 화면 렌더링 성능 이슈가 발생 "intellij 버벅임" 등으로 구글링 하였을 때는 대부분 intellij의 VM option으로 intellij가 사용하는 메모리를 늘려서 사용 하라는 정보가 있어 이미 8기가 까지 할당 하도록 옵션을 추가 하여 8기가 까지 할당은 하였지만 실제로 사용하는 메모리의 양은 대체로 3기가를 넘지 않음 메모리에 여유가 많은 상황에서도 렌더링 성능 이슈가 해결되지 ..

프로그래밍/ETC 2022.11.19