본문 바로가기

728x90

전체 글

[프로그래머스] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 / 자바(Java) 문제https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해설나의 level과 문제의 diff의 차이에 따라 다른 계산법을 적용해 제한시간보다 작게 나오는 최소 level을 구하는 문제입니다. 내 level에 따라 각 문제들의 계산법이 달라지기 때문에 수식으로 모든 값을 계산할 수는 없어 모두 직접 구해보아야 합니다. 하지만 문제의 개수는 300000이고 diff는 최대 100000이므로 level은 1~ 100000이 되어 총 연산횟수가 3*10^10이 되어 너무 많은 연산이 필요합니다. 더 .. 더보기
[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 / 자바(Java) 문제https://school.programmers.co.kr/learn/courses/30/lessons/340213?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  해설10초앞, 10초뒤, 인트로 스킵 기능을 구현하는 문제입니다. 시간을 다루는 문제는 가장 작은 단위( 해당 문제에서는 초)로 줄이는 방식으로 연산하기 편하도록 데이터를 변경해 줍니다. 이때 split함수를 사용해 string 입력값을 mm, ss로 나누고 각각 int로 형변환하여mm*60+ss 으로 시간을 통일합니다. 이후 10초 앞과 10초 뒤를 간단히 구현하고  놓치기 쉬운 인트로 스킵 기능을 모든 순간에.. 더보기
[프로그래머스] (2024 KAKAO WINTER INTERNSHIP) 산 모양 타일링 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 경우의 수를 10007(큰 소수)로 나누어 return해야하는 점에서 단순 구현으로 해결할 수 없고 이전 값에서 다음 값을 아는 DP를 사용해 해결하는 문제입니다. 점화식 형태로 풀어내기 위해서 어떤 형태들을 만들 수 있는지 파악하고 다음 값에 영향을 주는 요소를 알아야 합니다. 기본 모형인 큰 정삼각형을 덮는 방식은 4가지 입니다. 1. 정삼각형 타일 2. 왼쪽 정삼각형 + 중간 정.. 더보기
[프로그래머] (2024 KAKAO WINTER INTERNSHIP) 도넛과 막대 그래프 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 오직 간선들로만 주어진 값들을 이용해 3가지 그래프의 개수와 그래프에 포함되지 않는 노드 하나를 구하는 문제입니다. 처음 문제를 보았을 때 그래프를 순환으로 확인해야 하나 고민이 많았지만 생각의 방법을 바꾸어 찾아야 하는 것들의 특징들을 이용했습니다. 찾아야하는 요소는 총 4개 생성한 정점의 번호, 도넛모양그래프의 수, 막대모양 그래프의 수, 8자모양 그래프의 수입니다. 1. 생성한 .. 더보기
[프로그래머스] (2024 KAKAO WINTER INTERNSHIP) 가장 많이 받은 선물 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 선물을 주고 받은 기록을 정리하고 그 기록을 바탕으로 이번에 선물을 최대로 많이 받은 사람의 선물 수를 구하는 문제입니다. 선물기록을 2차원 배열로 정리하여 이번에 선물을 받는 경우를 쉽게 구하도록 하는 것이 이번 문제의 요점인듯 싶습니다. friends의 입력값이 모두 문자열 이기 때문에 각 문자열에 대응하는 이름을 빠르게 찾기 위해 Map을 사용해 이름들을 들어오는 순으로 숫자를 .. 더보기
[프로그래머스] PCCP 기출문제 3번 (아날로그 시계) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250135?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 시침, 분침과 초침이 만나는 횟수를 구하는 문제입니다. 특정 범위의 시간을 구하기 까다로워 단순하게 만들기 위해 00시 00분 00초에서 시작 시간과 끝 시간의 횟수를 구해 그 차이를 구하는 것으로 변형하여 해결하였습니다. 각 시간을 구하는데에는 1. 시침이 해당 시점까지 몇번 초침과 만났는가 2. 분침이 해당 시점까지 몇번 초침과 만났는가 3. 해당 시점에 .. 더보기
[프로그래머스] PCCP 기출문제 1번 (붕대 감기) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250137 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 매 초마다 몬스터가 공격을 하는 여부를 판단하며 문제를 해결할 수 있지만 붕대의 회복은 1초에 계속되며 특정한 주기별로 한번씩 추가 회복이 된다는 점을 생각하면 결국 계산이 필요한 시점은 몬스터에게 공격당하는 시점 뿐입니다. 따라서 몬스터의 공격이 담긴 배열을 기준으로 for문을 돌리며 문제 내용을 구현하여 해결할 수 있었습니다. 1. 지금까지 회복된 양을 반영하기 2. 몬스터에게 공.. 더보기
[프로그래머스] PCCP 기출문제 2번 (석유 시추) / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 PCCP의 기출문제로 석유시추라는 이름을 가진 문제입니다. 제한 사항에 정확성과 효율성을 확인하는 부분이 있어 조건에 맞도록 구현 뿐 아니라 가능한 효율적이도록 코드를 짜야합니다. 시추관은 특정 열을 모두 관통하는데 해당 열에 포함된 석유 덩어리를 모두 시추가 가능합니다. 하나의 시추관을 사용할 때 시추가능한 최대 석유의 양을 구하는 문제입니다. 문제를 해결하기 위해선 각 열별로 시추.. 더보기

728x90