Lv 2. 양궁대회
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=2%2C3%2C4&languages=java&page=7 코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.kr   📌 자바(Java)로 푸는 양궁대회 문제 풀이 🚀🔎 문제 개요이 문제는 프로그래머스 - 양궁대회 문제입니다.라이언이 화살 n개를 사용하여 어피치보다 높은 점수를 얻는 방법을 찾아야 합니다.단, 어피치의 화살 기록(info[])이 주어지며, 점수 차이가 가장 큰 경..
Lv 2. 조이스틱
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   🔠 자바(Java)로 푸는 조이스틱 문제 풀이🔎 문제 개요이 문제는 프로그래머스의 "조이스틱" 문제입니다.주어진 문자열을 "A"로 초기화된 상태에서 목표 문자열로 변경하기 위한 최소 조작 횟수를 구하는 문제입니다.💡 예제 입력String name = "JAZ";💡 예제 출력11위 예제에서 JAZ로 만들기 위해 최소 조작 횟수는 11입니다.🛠 알고리즘 접근 방식이 문제를 해결하기 위해 문자 변경 비용과 커서 ..
Lv 2. 숫자블록
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12923?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   자연수 n에 대해, 1과 n을 제외한 약수 중에서 10,000,000 이하인 값 중 가장 큰 값을 찾아야 한다.만약 그런 값이 없다면 1을 반환해야 한다. 단, n이 1이라면 0을 반환합니다.처음 작성했던 코드에서는 n의 약수를 찾을 때 첫 번째로 발견되는 약수 쌍을 이용하여 바로 반환하는 방식이었다. 하지만 이 방식은 모든 경우를 정확하게 처리하지 못했다.  예를 들어, n = 20000010일 때, 약수는 [1,..
Lv3. 길찾기 게임
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=2%2C3%2C4&languages=java&page=7 코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.kr   주어진 노드 좌표 정보를 이용해 이진 트리를 구성하고, 전위 순회와 후위 순회를 통해 결과를 반환하는 문제다. 먼저 노드 정보를 객체로 변환하고,y값을 기준으로 내림차순, x값을 기준으로 오름차순으로 정렬한다. 이 정렬된 순서대로 첫 번째 노드를 루트로 설정하고 나머지..
Lv2. 혼자 놀기의 달인
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  while 문을 활용한 DFS로 풀이하였다.이번 문제는 cards[] 배열이 주워질 때, 랜덤으로 어떠한 두 박스를 고른다.두박스 안에는 박스번호와 박스안의 카드번호가 주워지는데 카드번호를 통해 다음박스 를 열게되고 그 박스안의 카드번호에 해당하는 박스를 다시 여는반복을 통해 cycle을 측정한 다음2가지 cycle의 크기 가 최대가 될 수 있는값을 구하는 문제다. 우선 boolean[] isVisited 를 활용하여 방문체크를 해주고반복문..
Lv 4. 도둑질
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이전에 한번 풀어본 유형의 DP 유형이었기에 쉽게풀이할 수 있었다.  첫집과 끝집은 연결되어 있기 때문에dp 배열을 2가지 종류로 나누어야했는데, dp1은 첫집을 포함하는 경우로서 마지막 집의 포함경우를 제외하였고dp2는 첫집을 포함하는 경우를 제외하는경우로서 마지막집의 돈을 포함한 결과이다. 결국 dp[0]은 0으로 설정해 주고 Math.max 함수를 통해dp[i] = Math.max(dp[i-1],dp[i-2]+dp[i]) 라는 점화식을..
Lv 2. 충돌위험 찾기
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   로봇들이 2D 평면 위에서 이동하며 특정 경로를 따라가는 시뮬레이션 프로그램을 작성했다. 로봇들이 각기 다른 경로를 이동하며 같은 시간에 같은 위치에 도달할 경우 충돌이 발생한다고 정의하고, 이 충돌의 횟수를 계산하는 것이 문제의 요구사항이다.로봇들이 이동할 수 있는 좌표는 points로 주어진다.예를 들어 points = {{0, 0}, {1, 1}, {2, 2}, {3, 3}}와 같이 주어진다면{0, 0}, {1, 1}, {2, 2},..
Lv 2. 석유 시추
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이번 문제는 석유 시추관을 2차원 배열상에서 내렸을때 마주하는 최대 석유 매장량을구하는 문제이다. 이 문제를 풀기위해 2가지 class를 따로 정의 하였다.Node class를 통해서 좌표 class 를 정의하여 bfs 탐색을 원활하게 하고자 하였고Oil class를 통해서 석유 매장량을 체크하고 최소 몇의 y좌표에 내렸을때 마주할 수 있는지최대 몇의 y좌표에서 시추관을 내렸을때 마주할 수 있는지를 확인할 수 있게 하였다. int[][] ..
Lv 2. 두 원사이의 정수 쌍
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   두 개의 원 사이에 존재하는 격자점의 개수를 계산하는 문제다. 위의 이미지를 보면 두 개의 원이 그려져 있다. 작은 원은 반지름 r1​ , 큰 원은 반지름 r2 를 가지고 있다. 이 두 원 사이에 포함된 정수 좌표를 찾는 것이 문제의 핵심이다. 그림을 보면 두 원 사이에 위치한 파란색 점들이 우리가 찾으려는 정수 좌표들이다. 코드는 각 x 좌표에서 y 값의 범위를 계산해 파란색 점들의 개수를 세는 방식으로 동작한다.원의 방정식인 x제곱 +..
Lv 2. 혼자서 하는 틱택토
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   3 * 3 의 2차원배열에서 틱택토 게임을 진행하다가 만 상태 혹은 진행하던상태의 board가 주어지면 board 상태를 분석하여 이것이 정상적인 규칙에 따라 진행되었던 board의 상태인지아닌지를 확인하는 문제다. 그리하여 정상적인 규칙에 따라 진행되었던 board의 상태와 특징에 대해 분석하고여러 조건을 검토하여 규칙 위반 여부를 판단하는 형식으로 풀이 하였다.틱택토의 기본 규칙은 O와 X가 번갈아 가며 진행되며, 가로, 세로, 대각선..