프로그래머스

프로그래머스

[프로그래머스] 프로그래머스 Level1 소수 찾기 C++

문제 https://programmers.co.kr/learn/courses/30/lessons/12921?language=cpp 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 풀이 알고리즘 문제에서 많이 나오는 소수 찾기 문제이다. 판별해야 하는 범위가 1 ~ n인데 n이 최대 1000000이므로 일반적인 소수 판별로는 시간 초과가 날 것이다. 필자는 에라토스테네스의 체로 접근하여서 문제를 해결할 수 있었다. 0, 1은 소수가 아니므로 처음부터 제외시켰고 바깥 for문의 범위를 n..

프로그래머스

[프로그래머스] 프로그래머스 Level1 같은 숫자는 싫어 C++

문제 https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 풀이 문제를 풀기위한 알고리즘은 따로 필요없었고 구현으로 풀 수 있었다. 문제 자체는 되게 쉬워보였지만 풀다보면 좀 까다로운 조건 처리가 필요함을 알 수 있을 것이다. for문으로 arr의 마지막원소 이전까지 모든 원소에 대해 앞뒤가 같은지 판단했고, 같다면 다시 while 루프를 통해 앞뒤 원소가 같지 않은 인덱스를 발견할때까지..

프로그래머스

[프로그래머스] 프로그래머스 Level2 땅따먹기 Java

문제 https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 풀이 2차원 DP로 문제를 해결할 수 있었다. DP[i][j]를 좌표 (i, j)까지 도달하여 얻을 수 있는 가장 큰 점수라고 가정했을 때 이전 행에서와 같은 열을 지나오지 못하므로 j의 값에 따른 4개의 분기를 처리해주었다. 일단 DP 테이블을 채우기위해서 0번째 행의 초기값을 세팅해주었고 1행부터는 이전 행에서 현재의 j 값과 다른 ..

프로그래머스

[프로그래머스] 프로그래머스 Level2 최솟값 만들기 Java

문제 https://programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 풀이 문제를 풀기위한 알고리즘은 따로 필요하지 않았다. 우리가 구해야하는 값은 각 배열 원소의 곱의 최솟값이므로 하나의 배열은 오름차순, 하나의 배열은 내림차순 정렬하여 각 원소들을 곱해주면 최솟값을 구할 수 있다. 코드 import java.util.Arrays; class Solution { public int solution(in..

Doshisha
'프로그래머스' 카테고리의 글 목록 (5 Page)