본문 바로가기

Algorithm/Programmers93

[PRGRMS]64065번: 튜플 문제: https://programmers.co.kr/learn/courses/30/lessons/64065 시뮬레이션 문제입니다. 튜플의 순서를 정할 수 있는 단서는 "해당 숫자가 문자열 내 몇 번 나왔는지" 입니다. 그러므로 문자열을 파싱해서 {각 숫자, 숫자가 나온 횟수} 쌍으로 저장한 뒤, '숫자가 나온 횟수'를 기준으로 내림차순 정렬하면 그게 올바른 튜플입니다. 코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/%ED%8A%9C%ED%94%8C.java 2022. 3. 10.
[PRGRMS]42890번: 후보키 문제: https://programmers.co.kr/learn/courses/30/lessons/42890 시뮬레이션 문제입니다. 1. 컴비네이션을 통해 1개 ~ 컬럼의 사이즈만큼 뽑는 경우의 수를 생성합니다. 2. 하나의 경우의 수 == 후보키가 되고 이 후보키를 통해 모든 튜플을 식별할 수 있는지 확인합니다. 3. 2번을 만족한다면 이 후보키가 슈퍼키인지 유무를 확인합니다. 슈퍼키 여부 판단은 비트의 &(and) 연산을 적용합니다. 1. 정답에 포함되는 candidateKey 2. 현재 슈퍼키 여부를 검증해야하는 정답 후보 nowKey boolean isSuperkey = ((candidateKey & nowKey) == candidateKey) 코드: https://github.com/cotcha.. 2022. 3. 9.
[PRGRMS]92335번: k진수에서 소수 개수 구하기 문제: https://programmers.co.kr/learn/courses/30/lessons/92335 시뮬레이션 문제입니다. 제일 중요한 조건은 '단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.'라는 조건입니다. 위 조건으로 인해 아래 3단계를 거쳐서 정답을 구할 수 있습니다. 1. 주어진 숫자를 k진수 변환 2. 0을 기준으로 split 3. 남아있는 숫자들에 대해 소수 판별 코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/k%EC%A7%84%EC%88%98%EC%97%90%EC%84%9C%20%EC%86%8C%EC%88%98%20%EA%B0%9C%EC%88%98%20%EA%B5%AC%ED%95%98%EA%B8%B0.java 2022. 3. 5.
[PRGRMS]67258번: 보석 쇼핑 문제: https://programmers.co.kr/learn/courses/30/lessons/67258 투 포인터로 해결할 수 있는 문제입니다. 구간의 시작점(st)과 구간의 끝점(en)에 있는 모든 보석을 구매합니다. st값이 1씩 증가할 때 마다 이전 st값이 가리키는 인덱스에 있던 보석을 지웁니다. en값이 1씩 증가할 때 마다 새로운 en값이 가리키는 인덱스에 있는 보석을 더합니다. 단, 예외 케이스를 신경써야하는 부분이 있습니다. 1. 구간의 시작점에 있는 보석을 2개이상 가지고 있는 경우, 구간의 크기를 하나 줄여도(구간의 시작점 + 1) 보석의 구매상태는 변하지 않으므로 구간 크기를 줄일 수 있습니다. 2. 모든 보석을 구매한 경우 구간의 시작점 + 1을 하여 다음 정답 구간이 존재하는.. 2022. 3. 4.