본문 바로가기

알고리즘112

[프로그래머스 / 바탕화면 정리 / 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.
[프로그래머스 / 두 개 뽑아서 더하기 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 같은 레벨 1의 문제라도 난이도 차이가 들쑥날쑥인 것 같다. 배열 안의 두 수를 뽑아서 더하는 모든 경우의 수를 위해 이중 배열 형태로 첫 배열은 i=0부터 배열의 크기-1 까지 두 번째 배열은 j=i+1부터 배열의 크기까지 크기를 지정하였다. 뽑아서 더한 수는 중복을 걸러주는 Set에다가 저장 / Set은 중복은 걸러주나 순서없이 저장된다. 그렇기에 인덱스가 없는 객체에서 다음 요소를.. 2023. 3. 4.
[프로그래머스 / 대충 만든 자판 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 문제를 풀 때 생각해야 될 부분 중에서 여러 키에서 원하는 문자를 만들 수 있을 때 어느 키를 누르는 게 최소 횟수인지 구해야하는데 이 부분에서 시간을 많이 잡아먹어 풀지 못하고 다른 분들의 풀이를 보았다. 이 부분을 제외하면 key와 만드려는 문자들을 하나씩 비교해가며 같을 경우 숫자로 카운팅하여 return, 카운팅 숫자가 0이면 만들 수 없는 문자열이라 -1을 return하는 방.. 2023. 3. 1.
[프로그래머스 / 로또의 최고 순위와 최저 순위 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 먼저 반복문을 돌면서 0의 갯수를 카운팅하고 0을 제외한 나머지 로또 번호들이 당첨 번호와 몇 개나 일치하는지 검사한다. 이후 switch문에서 일치하는 로또 번호 갯수로 현재 등수를 정하고, 앞서 카운팅했던 0의 갯수들 만큼 현재 등수를 올려 최고 순위를 정한다. 순위는 1위가 제일 높기에 최고 순위의 변수인 highRank가 1보다 작아지면 1로 만들어줌 최저 순위는 0들이 로또 번.. 2023. 2. 25.
[프로그래머스 / 카드 뭉치 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 카드 뭉치에서 카드를 순서대로 한 장씩 사용 → 2개의 List에서 맨 앞 요소가 goal에 필요한 단어와 같은지 확인 사용한 카드는 재사용 불가 → List의 맨 앞 요소가 goal에 필요한 단어와 같다면 remove로 맨 앞 요소 삭제 카드를 사용해야만 다음 카드 사용 가능 → 카드를 사용할 수 없으면 현재 List의 맨 앞 요소들로 goal의 단어를 완성할 수 없으니 "No"를 .. 2023. 2. 22.
[SWEA / 중간 평균값 구하기 / JAVA] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pw_-KAdcDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 배열의 최소값과 최대값을 제외한 나머지 수 들의 평균값을 구하는 문젠데 여러 방법이 있겠지만 난 각 배열들을 Arrays.sort()로 오름차순 정렬한 뒤 첫 값과 마지막 값을 범위에서 제외한 반복문으로 합과 평균을 구하였다. ★ Math.round() → 소수 첫째자리 까지 반올림해주는 메서드 import java.util.*; public class Solution { public s.. 2023. 2. 20.