본문 바로가기
728x90
반응형

분류 전체보기141

(1) 그리디 알고리즘, 탐욕적인 알고리즘 "이것이 코딩테스트다 with 파이썬" 책을 공부하며 작성하는 글입니다. 3챕터 그리디 알고리즘 그리디 알고리즘 Greedy algorithm이란 현재 상황에서 당장 좋은 것만을 선택하는 것이다. 대부분의 문제에서는 최적의 해를 찾을 수 없을 가능성이 높으나, 탐욕적인 접근이 필요한 문제에서는 효과적이며 직관적이다. 문제가 어렵다면 먼저 그리디로 접근 -> 다른 알고리즘 해보기 다익스트라 알고리즘은 그리디 알고리즘에 속하나 암기가 필요하다. -유명한 거스름돈 문제 1260원을 500원, 100원, 50원, 10원으로 최소 동전갯수로 하기 -> n=1260을 큰 수의 동전부터 나누고, 나머지를 n으로 갱신하여 반복한다. *큰 단위가 항상 작은 단위의 배수여야한다. ex) n= 800일 때 500, 400,.. 2022. 12. 22.
백준 10757번 큰 수 문제 A+B 큰 수 A+B 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 77263 35065 30473 48.621% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 9223372036854775807 9223372036854775808 예제 출력 1 복사 18446744073709551615 #include #include #include #include using namespace std; void reverse(char arr[]) { int len = strlen(arr); for (int i = 0; i < len/2; .. 2022. 11. 29.
백준 1018번 파이썬풀이 체스판 다시 칠하기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 80420 38678 31103 48.202% 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처.. 2022. 11. 11.
백준 11047번 동전 0 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 97378 50995 39582 51.867% 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 예제 입력 1 복사 10 4200 1 .. 2022. 10. 12.
백준 1012번 c++풀이 dfs 풀이 유기농 배추 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 512 MB 123625 48339 32713 37.110% 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 .. 2022. 10. 11.
백준 1011번 Fly me to the Alpha Centauri 파이썬 풀이 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 85233 25521 20069 30.771% 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하.. 2022. 9. 7.
백준 17298번 오큰수 문제 파이썬 풀이 오큰수 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 512 MB 48250 16000 11599 32.571% 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ .. 2022. 9. 7.
백준 10773 파이썬 k=int(input()) stack=[] for i in range(k): temp=int(input()) if(temp==0): stack.pop() else: stack.append(temp) sum(stack) sum(stack)이 아니라 print(sum(stack)) 2022. 9. 2.
10828 스택 파이썬 풀이 import sys n = int(sys.stdin.readline()) stack=[] for i in range(n): com= sys.stdin.readline().split() if com[0] =="push": stack.append(com[1]) elif com[0]=="pop": if(len(stack)==0): print(-1) else: print(stack.pop()) elif com[0]=="size": print(len(stack)) elif com[0]=='empty': if len(stack)==0: print(1) else: print(0) elif com[0]=='top': if(len(stack)==0): print(-1) else: print(stack[-1]) com=l.. 2022. 9. 2.
728x90
반응형