목록Java (46)
마이의 개발 블로그
구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방식 1) 주어진 주식 종목의 평가 금액을 산출한 후에 2) 평가 금액이 높은 순, 주식 번호가 낮은 순으로 판매할 주식의 번호를 순서대로 출력해야하는 문제이다. 주식 번호는 주식이 제시되는 순서와 동일하다. 로직 설명 - n에 주식 개수 저장 - 가격, 주식번호 저장용 배열 double[n][2] 선언 - n만큼 반복하며: 한 줄씩 읽어 가격(price)과 주식번호(i + 1)를 저장 - Arrays.sort() 메서드에 Comparator를 재정의하여 주식 가격 기준 내림차순, 주식 번호 기준 오름차순 정렬 - 정렬된 배열을 탐색하며: 순차적으로 번호와 공백 StringBuffer에 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 행렬의 곱셈을 그대로 옮겨서 작성하면 되는 문제로 접근법이라고 할 게 없는 간단한 문제이다. 로직 설명 - 답변 배열 선언(사이즈: arr1의 행 x arr2의 열) - 답변 배열을 탐색하며 arr[i][j]에 곱셈 후 합산 결과값을 넣어줌(합산을 위해 위해 k를 사용) Note - 맞추긴 했는데 행렬 계산법이 헷갈려서 다시 한 번 개념을 찾아봤다. 왜 2단계 문제인지는 모르겠다. 정답코드 class Solution { public int[][] solution(int[][] arr1, int[][..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 n * n 크기 이차원 배열의 (0, 0)에서 시작하여 아래, 오른쪽, 위쪽(왼쪽 대각선 위)의 세 가지 방향으로 번갈아가며 숫자를 순차적으로 입력하면 되는 문제이다. 두 가지 방식의 답안을 기록으로 남기고자 하는데, 2번은 내가 구현으로 풀어낸 예제이고 1번은 답안 제출 후 발견한 다른 사람의 접근방법을 한 번 본 후에 다시 적어본 코드이다. 프로그래머스에서 제시한 풀이방식도 따로 있기는 한데 2번 방식을 좌표변환 배열을 활용하여 while문 한 개로 간결하게 만든 버전이고 딱히 직관적이거나 시간..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 주어지는 방정식들의 모든 교점을 구하고 교점에 별을 찍어 출력하면 되는 문제이다. 문제에서 교점이 무수히 많이 발생하거나(일치하는 경우)는 없다고 가정했기 때문에 모든 경우에 수에 대해 문제 하단에 있는 교점 구하는 공식을 이용하여 교점을 구하면 된다. 격자판은 최소 크기로 그려야 하므로 교점이 찍히는 위치들의 최소값, 최대값을 구하고 그 좌표들을 기준으로 격자판의 폭과 높이를 산출할 수 있다. 좌표정보를 저장하기 위한 클래스 Coordinate을 생성하여 좌표리스트, 좌표 최소/최대값, 격자판 크..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 1사분면의 4분원 안에서 k값에 따라 찍을 수 있는 점의 개수를 모두 구하는 문제이다(원과 관련된 식을 전혀 몰라도 해결 가능). 직관적인 방식은 최초 접근처럼 이중 for문을 사용하여 각 x, y 좌표가 0, 0 으로부터 d 이하의 거리에 위치해있는지를 체크하는 것인데 이럴 경우 시간초과가 나게된다. 탐색을 한 번만 하여 문제를 해결하려면 각 x좌표에 대해 최대 y좌표값을 구하면 된다. 최대 y를 maxY라고 지칭한다면 피타고라스의 정리에 의해 x^2 + maxY^2 = d^2 이므로 maxY 값..