Computer Sciences/Problem Solve(155)
-
[Programmers] 교점에 별 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/87377 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 수학을 조금 응용한 구현 문제이다. 문제에서 교점을 구하는 공식을 제공하기 때문에 그대로 구현하기만 하면 된다. 주의할 점은 배열에서 1사분면과 2사분면, 3사분면과 4사분면의 위치를 반전시키기 위해 y = maxY - i.x, x = i.x - minX로 해주어야 한다. 예를 들어 maxX =4, maxY = 4이고 (1, 1)의 점이라고 가정하고 둘다 max에서 빼기로 진행하는 경우..
2023.08.16 -
[Programmers] [1차] 캐시
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 LRU 알고리즘을 구현하는 문제이다. 구현 방법에는 여러가지가 있으며 그 중 Java에서 제공하는 LinkedHashMap을 이용하여 해결하였다. LinkedHashMap는 removeEldestEntry() 라는 메소드를 제공한다. 이 메소드는 put() 호출 시 내부에서 실행되는데 정렬 순서를 기준으로 가장 오래된 Entry를 제거한다. LinkedHashMap의 기본 정렬은 삽입 ..
2023.08.16 -
[Programmers] H-Index
https://school.programmers.co.kr/learn/courses/30/lessons/42747# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 설명도 적고 불친절하여 문제를 이해하는 데 시간을 많이 쓴 문제다. 필자와 같은 느낌을 받은 분들도 적지 않아 보였다. 아래는 참고한 글이다. https://dev-musa.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Level-2-H..
2023.08.10 -
[Programmers] n^2 배열 자르기
https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 프로그래머스 문제 페이지에서 이해하기 쉽도록 gif를 제공한다. 아래가 입출력 1번에 대한 설명이다. 처음엔 문제에서 주어진대로 배열을 활용하여 해결하려고 했다. 문제는 1차원 배열의 크기가 n*n이 되어야 하는데 n은 최대 10,000,000이다. 즉 arr의 최대 크기는 10,000,000의 제곱(1조)가 된다. 코드를 쓰면서도 배열 크기가 1조짜리인 적은 안 될 거라고 생각했다. ..
2023.08.10 -
[Programmers] 괄호 회전하기
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 올바른 괄호 문제의 응용 버전이다. 이 문제 또한 스택을 활용할 줄 알고 앞 문제를 풀어봤다면 금방 해결할 수 있다. 문자열을 회전하라고 하는데 간단하게 하면 맨 앞 문자를 떼서 맨 뒤로 붙이면 된다. 코드 import java.util.Stack; class Solution { public int solution(String s) { int answer = 0; for (int i =..
2023.08.09 -
[Programmers] 귤 고르기
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 k개의 귤을 고를 때 크기별로 분류 시 크기가 다른 종류가 최소가 되도록 해야 한다. 이때 종류의 개수를 구해야 한다. 처음 문제를 보았을 땐 배열로 카운트할까 생각했지만 원소로 어떤 숫자가 들어올지 몰라 초기화하기 까다로웠다. 그래서 숫자별로 그룹핑할까 생각했지만 이 또한 적절하지 않다고 생각했다. 마지막으로 결정한 방법은 HashMap과 정렬을 활용한 방법이다. 먼저 주어진 tan..
2023.08.09