분류 전체보기

오늘은 알고리즘이 아니라 함수를 설명할 것이다. 백준에서 가장 간단한 입출력 문제들을 푸는데 계속 시간초과 오류가 떴었다. 다른 곳에서는 시간을 줄일 데가 없는데 계속 초과떠서 답답해하면서 검색하던 찰나에 sys함수를 발견했다. sys는 파이썬의 표준 라이브러리중에 하나이다. 이 라이브러리 안에서 sys.stdin.readline()이라는 함수가 있는데 이 함수가 바로 input()과 동일한 함수이다. 유일한 차이점은 sys.stdin.readline()은 맨뒤에 개행문자가 같이 입력된다는 점이다. 즉 우리가 입력값을 치고 엔터를 누를 때 그 문자도 같이 들어간다. 그것을 제외하고는 input()과 똑같이 단순 입력을 하는데 왜 이 함수를 쓰냐면 시간이 훨씬 빠르다. 또한 메모리도 적게 사용한다. 그래서..
[그대로 출력하기,그대로 출력하기2]-11718,11719번 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net My answer import sys for L in sys.stdin: print(L,end="") Another ans..
오늘은 DFS(Depth-First-Search) 깊이 우선 탐색에 대해서 공부하려고 한다. DFS는 루트노드(혹은 임의의노드)에서 시작해서 다음 분기로 넘어가기전에 해당 분기를 완벽하게 탐색하고 넘어가는 알고리즘을 뜩한다. 이 방법은 모든 노드를 탐색하려고 할 때 사용하며 BFS 너비우선탐색보다 간단하지만 모든 노드를 왔다갔다 하기 때문에 느리다. 이해하기 쉬운 비유로는 연속으로 된 갈림길이 있을 때 한방향으로 쭉가다가 막히면 바로 전 갈림길로 돌아와서 반대로 쭉가고 다시 돌아오고를 반복하는 것으로 이해 할 수 있다. 이렇게 계속 돌아오는 알고리즘이기 때문에 순환 알고리즘 즉 재귀함수의 형태를 띄고있다. 또한 스택을 사용하여 구현한다. graph = { 'a': ['b', 'c', 'e'], 'b': ..
[대회 or 인턴]-2447번 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net My answer n,m,k=map(int,input().split()) t=0 while(1): if(n>=2 and m>=1): n,m=n-2,m-1 if(n+m>=k): t+=1 else: print(t) break else: print(t) break Another answer n,m,k=map(int,input().split()) print(min(n//2,m,(n+m-k)//3)) 더보기 우와 똑똑하다....어차피 여자가 만들 수 있는 최대팀 and 남자가 만들 수 있는 최대팀 and 인턴..
[별 찍기-10]-2447번 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net My answer def delete(cnt,tmp,n): for i in range(n//3,cnt,n): for t in range(i,i+n//3,1): for j in range(n//3,cnt,n): tmp[t]=tmp[t][:j]+" "*(n//3)+tmp[t][j+(n//3):] if(cnt!=n): return delete(cnt,tmp,n*3) else: return tmp n=int(inp..
Greedy(탐욕법) 알고리즘은 생각하기 단순하면서 강력하다. Greedy의 제일 핵심은 "매 순간 가장 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향은 고려 하지 않는 것" 이다. 대부분의 탐욕법 문제는 가장큰 순서대로, 가장 작은 순서대로등의 힌트가 문제에 주어진다. 이 문제는 위에서 말했듯이 나중에 미칠 영향을 고려하지 않기 때문에 Greedy로 문제를 짜려면 미리 이 문제에 이 알고리즘을 적용해서 최적의 해가 나올지를 생각해야 한다. 즉, 문제를 먼저 정확히 이해해야한다. 대표적인 문제로는 거스름돈 문제로 백준의 #11047j번 동전0이 있다. 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 ..
창빵맨
'분류 전체보기' 카테고리의 글 목록 (67 Page)