본문 바로가기

알고리즘/프로그래머스46

[프로그래머스 / 크레인 인형뽑기 게임 /JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 *개인적으로 푸는 맛이 있는 문제였음 인형 뽑기 게임의 구조가 2차원 배열로 구성되어 있어서 1번에 위치한 인형들을 계속해서 뽑으려면 [0][0] → [1][0] 이렇게 첫 번째 배열의 숫자를 바꾸어 주어야한다. 이중 for문 안에서 if(board[j][moves[i]-1] !=0) 조건으로 뽑을 번호가 0이 아닌 수를 찾아내서 bucket에 저장하고 뽑은 번호는 0으로 바꾸어주고 다.. 2023. 3. 12.
[프로그래머스 / K번 째 수 / JAVA / 정렬] * Arrays.copyOfRange() https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 배열은 0번 인덱스부터 시작하는 개념이라 처음엔 혼동이 오나 i, j, k의 값들을 2차원 배열에 사용하고, 잘라낸 배열 cutArray에 값을 넣어주면 쉽게 풀린다. import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.. 2023. 3. 10.
[프로그래머스 / 모의고사 / JAVA / 완전탐색] https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 각 수포자 친구들의 답을 찍는 패턴에 따라 점수를 매기는 개별 반복문을 만들어주었음 핵심은 정답 갯수의 크기만큼 돌아가는 반복문에서 각 친구들의 찍는 패턴의 반복 주기가 돌아올 때 마다 반복문의 크기를 0으로 초기화해주고 정답 비교 횟수가 정답 갯수와 같아지면 반복문을 탈출하는 것 세 친구들의 순위를 메기는 기능을 일일이 다 나열하는 식 보단 뭔가 간단하게 만들고 싶었는데 떠오르지 않아.. 2023. 3. 10.
[프로그래머스 / 키패드 누르기 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번에 푼 방법은 코드가 너무 길어서 다른 사람 풀이를 위에 놓았다. 다른 사람 풀이 내가 하고 싶었던 2차원 배열로 각 버튼의 위치를 지정해주었다. 2차원 배열의 순서는 누를 번호와 인덱스의 위치를 일치시켜주기 위해 그런 듯 class Solution { // 0부터 9까지 좌표 {y,x} int[][] numpadPos = { // 위에 사진 이미지로 보이는 전화패드를 좌표로 만든 듯 {3,1.. 2023. 3. 8.
[프로그래머스 / 신규 아이디 추천 / JAVA / replaceAll()] https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 다른 문제들도 같은 방식으로 풀긴했지만 이 문제는 자체에서 단계별로 해결사항을 제시해줘서 푸는 맛이 있었다. 아이디 검사 7단계 1. 모든 대문자를 소문자로 → toLowerCase() 사용 2. 알파벳 소문자, 숫자, -, _, .을 제외한 다른 문자 전부 제거 → 문제에서 제시한 있을 수 있는 특수문자 배열을 따로 만들어서 반복문으로 해당 특수문자들 제거 3. .(마침표)가 2번 이.. 2023. 3. 7.
[프로그래머스 / 바탕화면 정리 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 문제에선 최소거리 구하는 공식을 (x2-x1) + (y2-y1)이라고 지정하였으나 생각해보니 시작점과 끝점을 드래그했을 때 만들어지는 사각형의 4면은 최소 x, y좌표 / 최대 x, y좌표로 둘러쌓여있다. 그렇기에 최소 x, y좌표 / 최대 x, y좌표를 구하는 계산을 해주고 2차원 배열로 파일의 위치를 찾으면 그 파일의 x, y좌표는 좌측 위를 가리키고 있기에 끝점의 경우는 마지막에.. 2023. 3. 6.