본문 바로가기

programmers3

Programmers 2 레벨 테스트 2 Programmers 2 레벨 테스트 2 문제 배열에 숫자들이 주어진다. 위에 그림처럼 배열은 원형으로 이루어져있다. 배열 안에 있는 연속된 숫자들을 더해서, 더한 숫자들의 개수를 구하는 것 예를 들어 연속된 숫자 하나 : [4], [7], [9], [8] 연속된 숫자 둘 : [8, 4], [4, 7], [7, 9], [9, 8] 연속된 숫자 셋 : [8, 4, 7], [4, 7, 9], [9, 8, 4] 연속된 숫자 넷 : [8, 4, 7, 9] 위의 숫자들을 더하고, 반복된 숫자들을 제거 후, 개수를 세면 된다 문제 풀이 더한 숫자들은 set()에 넣을 것 그렇게 해야, 반복된 숫자들을 알아서 없앨 수 있다 배열 elements가 주어지는데 elements + elements를 해서, 배열을 두 배로.. 2023. 2. 7.
Programmers 2 레벨 테스트 1 Programmers 2 레벨 테스트 1 문제 숫자가 담겨있는 배열이 주어진다. 그 배열 안에 있는 숫자들을 나열하여, 제일 큰 숫자를 만드는 것이다. [6, 20, 4] 가 있다면 6420을 출력하는 것 각 숫자는 1부터 1000까지의 숫자다. 즉 999가 제일 큰 숫자. 문제 풀이 배열 안에 있는 숫자들을 문자열로 만든다 그렇게 하면 숫자의 제일 앞 자리 숫자를 기준으로 순차적으로 배열을 해준다 각 문자열을 4번을 반복시키고, 그 중 4자리를 가지고 온다. 4자리는 1부터 10000까지의 숫자가 주어져서 최대 4자리가 되는 것 4번 반복하는 이유는 (람다를 사용한다) [6, 21, 2, 8] 이 주어졌을 때 먼저 정렬을 하면 [8, 6, 21, 2] 가 된다 제일 크게 만드려면 86221이어야 한다 .. 2023. 2. 7.
[Python] 프로그래머스 - 소수 구하기 🧑‍💻 [Python] 프로그래머스 - 소수 구하기 Level 2 처음에는 그냥 일반적인 식으로 소수 구하기를 풀었다 시간 초과 n까지의 숫자를 순회하면서, 각 숫자가 소수인지 아닌지를 찾음 에라토스테네스의 체를 사용하면 더 빠르게 소수를 구할 수 있다 2부터 시작을 해서, 2의 배수인 숫자들, 3의 배수인 숫자들, 5의 배수인 숫자들 등을 빼주는 것이다 문제풀이 코드 def solution(n): answer = 0 flag = True if n == 1: answer = 0 else: for num in range(2, n + 1): cnt = 0 for i in range(1, (num // 2) + 1): if num % i == 0: cnt += 1 if cnt > 1: flag = False .. 2023. 1. 18.