목록개발 공부 (60)
내 맴

문제 ) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 오류 해결 ) 다 코딩하고 나서 제출하니깐 시간초과 되었다고 떴다 시간초과 오류 해결법을 알아보니깐 input 대신에 sys모듈의 sys.stdin을 사용해주어야 한다고 한다. - python code import sys input= sys.stdin.readline def menu(command): if command[0]=='pus..

- BFS ( Breath First Search ): Root Node 방문 후, 그 Node의 후손과 같은 level에 있는 Node들을 먼저 Search - 구현 방법 1. GRAPH 표현해주기 ( python ): Dictionary 과 List 자료형을 사용해준다1개의 Node와 연결되어있는 Node들을 모두 다 표현해준다# 1. GRAPH로 나타내기 - Dictionary 사용graph={ 'A': ['B','C'],'B':['A','D','E'],'C':['A','F','G'],'D':['B','H', 'I'],'E':['B','J'],'F':['C'],'G':['C'],'H':['D'],'I':['D'],'J':['E']} 2. BFS 구현하기 ( python ): Queue를 이용..

- DFS ( Depth First Search ): Root Node 방문 후, 그 Node의 후손들을 왼쪽에서 오른쪽으로 Search - 구현 방법 1. GRAPH 표현해주기 ( python ): Dictionary 과 List 자료형을 사용해준다 1개의 Node와 연결되어있는 Node들을 모두 다 표현해준다 2. DFS 구현하기 ( python ): Stack를 이용하여 구현한다. - 전체 code

문제 ) https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5 www.acmicpc.net 풀이 ) N개의 판을 옮기는 경우 1. 1번째 판 ~ (N-1)번째 판 까지 전부 2번으로 옮겨주기..

문제 ) https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. www.acmicpc.net N=3 일 때, N= 9 일 때, 가로가 x축, 세로가 y축이라고 하면, : X= 1, 4, 7..

- Quick Sort 설명: pivot을 설정하고 partition을 수행하여 pivot값을 고정시킨다. 1. pivot을 설정하기 2. partition과정 수행 → pivot이 고정됨 3. pivot보다 큰 부분과 작은 부분 각각 quick sort 다시 시행 - Partition 과정 1. i= 맨처음 수 , j= 맨 마지막 수 2. (1) i가 하나씩 커지면서 i>pivot이 되면 멈춤 (2) j가 하나씩 작아지면서 j3. If iElse, List[j]와 pivot값을 바꿔주고 pivot은 고정된다. - Python Code ( Partition ) - Python Code ( Quick Sort )

문제 ) https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 www.acmicpc.net 풀이 ) F(0) =0 , F(1) =1 F(n)= F(n-1) + F(n-2) 피보나치 수열을..

문제 ) https://www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버젼의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 www.acmicpc.net 풀이 ) 브루트 포스 방법을 이용해서 풀어보았다. 뽑을 카드 3개를 돌아가면서 다 뽑아 보면서 뽑은 3개의 카드 합이 전 값보다 ..