백준 알고리즘(BOJ)90 백준 알고리즘 15664 (N과 M(10)) - python [문제] 백준 알고리즘 15664 (N과 M(10)) - python > https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net N과 M(9)에서 비내림차순 조건이 붙은 문제. N과 M(9)와 같은 방법에서 idx로 i+1을 넘겨주어 range를 조정해주면 해결. [Code] N, M = map(int, input().split()) L = list(map(int, input().split())) L.sort() visited = [Fal.. 2019. 10. 16. 백준 알고리즘 15663 (N과 M(9)) - python [문제] 백준 알고리즘 15663 (N과 M(9)) - python > https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 이제는 N개의 자연수 중에 겹치는 수가 존재할 수 있는 문제다. 결론부터 말하면 처음에는 시간초과로 계속 실패했다. (pypy3로는 간신히 통과) 접근법 자체가 문제는 아니었고, 원인은 python에서 편리하게 쓰는 'if A in B' 이다. 이 구문이 A가 B배열 안에 소속되어 있는지를 검사하기 위해 for문이나.. 2019. 10. 16. 백준 알고리즘 1978 (소수 찾기) - python [문제] 백준 알고리즘 1978 (소수 찾기) - python > https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 제목 그대로 주어진 배열에 소수가 몇 개 인지 찾는 문제이다. 배열(L)에 요소들을 리스트로 받고, 1이 아닌 요소(i)를 하나씩 꺼내면서 2~ i-1까지 나눠지는 수가 없을 때만 센다. 나눠지는 수가 존재하면 더 이상 소수가 아니므로, 시간 낭비를 줄이기 위해 break 한다. 플래그(check)를 이용하여 나눠지는 수가 있을 때만 세도록 했다. [Code] N = int(input()) L = l.. 2019. 10. 16. 백준 알고리즘 15657 (N과 M(8)) - python [문제] 백준 알고리즘 15657 (N과 M(8)) - python > https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. www.acmicpc.net N과 M(7)에서 오름차순 조건이 추가된 문제이다. idx를 적용한 range 조건을 추가하면 된다. 같은 수를 골라도 되므로 idx로 i을 넘.. 2019. 10. 16. 백준 알고리즘 15656 (N과 M(7)) - python [문제] 백준 알고리즘 15656 (N과 M(7)) - python > https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. www.acmicpc.net N과 M(6)와 비슷한데, 같은 수열을 여러번 골라도 되며 오름차순이 없는 문제 visited를 쓰지 않고, idx를 적용한 range도 쓰지 않으면 끝이다. 오히려 코드로는 간단해진다. [Code] N, M = map(int, input().split()) L = list(map(i.. 2019. 10. 16. 백준 알고리즘 15655 (N과 M(6)) - python [문제] 백준 알고리즘 15655 (N과 M(6)) - python > https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다. www.acmicpc.net N과 M(5)에서 오름차순 방식 추가. idx 적용한 range 조절만 해주면 끝이다. [Code] N, M = map(int, input().split()) L = list(map(int, input().split())) L.sort() visited = [False] * N out.. 2019. 10. 16. 백준 알고리즘 15654 (N과 M(5)) - python [문제] 백준 알고리즘 15654 (N과 M(5)) - python > https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 이제는 N과 M을 자연수가 아닌 지정된 배열을 출력시킨다. 중복 수열을 허용하지 않고, 사전순은 동일하다. 그렇다면, 출력용 배열인 out에 i가 아닌 배열의 [i]번째를 넣으면 동일한 구조이다. 사전순으로 출력하기 위해서 지정된 배열 L을 sort() 시키고, out에 L[i]를 append 해주어 어렵지 않게 풀 .. 2019. 10. 15. 백준 알고리즘 15652 (N과 M(4)) - python [문제] 백준 알고리즘 15652 (N과 M(4)) - python > https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 전형적인 N과 M 문제인데, 1. 같은 수를 여러 번 골라도 되고, 2. 비내림차순(순열의 오른쪽 요소가 크거나 같음) 1.을 해결하기 위해 재귀 시 i+1이 아닌 i를 넘겨주어 같은 수도 고를 수 있게 함 2.를 해결하기 위해 idx 적용(N과 M(2))에서 썼던 방법 사용 [Code] N, M = map(int,.. 2019. 10. 15. 백준 알고리즘 2775 (부녀회장이 될테야) - python [문제] 백준 알고리즘 2775 (부녀회장이 될테야) - python > https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 2019. 10. 15. 이전 1 ··· 6 7 8 9 10 다음 728x90