알고리즘
-
프로그래머스 Lv.2 스택/큐 - 프린터 with 파이썬알고리즘 2020. 1. 14. 00:11
1. 문제 언어 : python3 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가..
-
프로그래머스 Lv.1 - 파보나치수 with 파이썬알고리즘 2020. 1. 13. 22:24
1. 문제 언어 : python3 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 2. 풀이 결과(소스코드) def solution(n): a, b = 0, 1 for..
-
프로그래머스Lv.1 - 소수 찾기알고리즘 2019. 12. 23. 10:11
1. 문제 언어 : python3 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 2. 풀이 결과(소스코드) def solution(n): # 짝수는 소수가 아니므로, 3~n까지 홀수값만 있는 배열 생성 numbers = set([i for i in range(3, n+1, 2)]) for i in range(3, n+1, 2): if i in numbers: # 특정수의 배수는 나누어지는 수가 있는 것이므로 해당 숫자를 배열을 돌면서 해당 배수 삭제 numbers -= set([i for i in range(i*2, n+1, i)]) # 배열생성시 3부터 시작했..
-
코드업 기초 100제 - 1098 : [기초-2차원배열] 설탕과자 뽑기알고리즘 2019. 12. 3. 10:30
1. 문제 언어 : python3 부모님과 함께 유원지에 놀러간 영일이는 설탕과자(설탕을 녹여 물고기 등의 모양을 만든 것) 뽑기를 보게 되었다. 길이가 다른 몇 개의 막대를 바둑판과 같은 격자판에 놓는데, 막대에 있는 설탕과자 이름 아래에 있는 번호를 뽑으면 설탕과자를 가져가는 게임이었다. 격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l), 막대를 놓는 방향(d:가로는 0, 세로는 1)과 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때, 격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자. 입력 첫 줄에 격자판의 세로(h), 가로(w) 가 공백을 두고 입력되고, 두 번째 줄에 놓을 수 있는 막대의 개수(n) 세 번째 줄부터 각 막대의 길이(l), ..
-
코드업 기초 100제 - 1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기알고리즘 2019. 12. 2. 15:30
1. 문제 언어 : python3 유형 : 전형적인 이중 for문 문제 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다. 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다. 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. 입력 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다. 둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다. n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다. 출력 흰 돌이 올려진 바둑판의 상황..
-
코드업 기초 알고리즘 100제 완주-파이썬알고리즘 2019. 11. 17. 21:55
1. 진행 내용 1) 풀이 내용 : 코드업 기초 알고리즘 100제 전체, codesignal 기초 문제 2문제 https://codeup.kr/problemsetsol.php?psid=23 문제집 / 기초 100제 codeup.kr 2) 언어 : 파이썬3 3) 기간 : 2019년 8월 28일 ~ 11월 13일 (평일에 매일 1시간씩) 4) 결과물 : github 업로드 완료 https://github.com/RobertHan96/CodeUP_BASIC100_Algorithm 5) 보완점 이중 for문, 2차원 배열에 대한 이해 (막혔던 문제들 추가 포스팅 : 1096 ~ 1099번 문제) 프로그래머스 레벨 2~3 문제 도전 2. 회고 학원에서 통해 파이썬, 스위프트의 기초 과정 수강은 완료했지만 실제로 ..
-
CodeUP 파이썬 기초 알고리즘 100제 : 1~15번알고리즘 2019. 10. 7. 10:07
1. 진행 내용 언어 : python3 기초적인 출력문 관련 알고리즘 1001~1015번 진행 진행 중 특이사항이나 막혔던 부분을 정리해나갈 예정 2. 풀이 결과(소스코드) 문제 번호 문제 소스 코드 실행 결과 비고 1001 printf( ) 를 이용해 다음 단어를 출력해보자. Hello (단, 글자색은 관계없다.) print("Hello") Pass 1002 이번에는 공백이 들어있는 문장을 출력해보자. 다음 문장을 출력해보자. Hello World (대소문자에 주의한다.) print("Hello World") Pass 1003 이번에는 줄을 바꿔 문장을 출력하는 출력을 연습해보자. 다음과 같이 줄을 바꿔 출력 해야한다. Hello World 두 줄에 걸쳐서 줄을 바꿔 출력..