전체 글 (188) 썸네일형 리스트형 [Python] 그리디- 2847. 게임을 만든 동준이(실4) https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net >>문제 포인트 : 뒤에서부터 score를 나열하여 하나씩 다음 행과 비교 : 만약 이전 레벨의 점수가 더 높다면 현재 점수-1로 초기화시킴 / 그 차이만큼을 count+ #2847 n= int(input()) score=[] result=0 for i in range(n): num= int(input()) score.append([i, num]) score=sorted(score,reverse.. [Python] 그리디- 1744. 수 묶기(골4) https://www.acmicpc.net/problem/1744 >> 문제 포인트 - 양수의 경우 큰수부터 두개씩 묶기 positive = [5,4,3,2] => 5*4 / 3*2 -1의 경우는 곱하면 아무 이득이 없으므로 묶지말고 더해주기 - 음수의 경우 절대값이 큰 수부터(작은수부터) 두개씩 묶기 negative = [-5, -4, -3, -2] => -5 *-4 / -3*-2 -음수를 두개씩 묶고 하나가 남았을 때, => 0이 나왔었다면 0이랑 곱해서 없애주는게 이득 => 0이 안나왔었다면 그냥 더함 #1744 #0인 경우-> 포함x #음수와 양수를 따로 모으기 positive=[] negative=[] result=0 n= int(input()) flag=0 for _ in range(n): k.. [Python] 그리디 - 1343.폴리오미노(실5) https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net >>문제 포인트 - '.'을 구분자로 연속된 X의 뭉태기들을 나눔 - 만약 연속된 X의 개수가 홀수라면 -1 => 'AAAA'(4) / 'BB'(2) 길이가 모두 짝수이므로 만들 수 있는 길이 조합은 짝수밖에 없음 - X의 개수를 4로 나눈 몫만큼 'AAAA'추가 - X의 개수를 4로 나눈 나머지(2or 0) 를 2로 나눈 몫만큼 'BB'추가 #1343 k= input() list_word= list(k.split('.')) result='' flag=0 for i in list_word: if le.. [CPP] strcpy_s - L buffer is too small 자주 하는 실수라 스크랩 해놓자. strcpy_s는 c언어에서 문자열을 복사하는 기능을 한다. strcpy_s(옮길 변수, 공간의 크기, 붙여넣을 문자열) 로 사용되는데 여기서 공간에 크기에 sizeof(포인터)가 들어가면서 문제가 생김 (나는 문자열 공간의 크기를 넣어주었다고 착각) 포인터의 byte 크기 != 문자열 공간의 byte크기이다. 예시) => sizeof(포인터가 가르키는 공간)=20byte => sizeof(포인터)= 4byte 이 상황에서 sizeof(str)은 20바이트가 아닌 4byte가 됨 문제 해결방법1. 직접 상수를 넣기 문제 해결방법2. strlen을 이용해 길이값 변수 넣기 참고) https://stackoverflow.com/questions/46994332/strcpy-.. [Python] 그리디- 1339. 단어수학(골4) https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net >>문제포인트 - 각 알파벳이 몇번 등장했는지 진수로 판단해야 하는 문제 ---예를 들어 AAA라면-> A는 111(100+10+1)번 나왔음 - 많이 나온 횟수의 알파벳부터 9부터 차례로 곱해 result 출력 >>코드 n= int(input()) dict ={} #출현 횟수를 십진수로 저장 for i in range(n): word= input() word_len= len(word) fo.. [Python] 위상정렬 - 14676. 영우는 사기꾼?(골3) https://www.acmicpc.net/problem/14676 14676번: 영우는 사기꾼? 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 건물 종류의 개수 N, 건물 사이 관계의 개수 M, 영우의 게임 정보의 개수 K가 주어진다.(1 ≤ N, M, K ≤ 100,000) 다음 줄부터 M줄에 걸쳐 www.acmicpc.net >>문제 포인트 1) 건물들은 중복으로 지을 수 있음을 고려 2) 치트키를 판단할 수 있는 상황을 잘 확인하여야 함 - 치트키 상황1. 건물 파괴할 때 : 파괴대상인 건물이 안지어져 있을때 - 치트키 상황2. 건물 지을때 : 모든 선행 건물이 안지어져 있을때 3) 선행건물의 판단여부(indegree) - 위상정렬의 indegree 행으로 선행건물 지음 여부를 판단 .. [Python] 그리디- 1946. 신입사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net >> 문제 포인트 이 문제가 헷갈리는 이유는 기준점이 두개이기 때문이다. 즉, 서류심사의 랭킹과 면점심사의 랭킹을 동시에 고려해주어야 하기 때문에 문제 풀이에 막힘이 있었다. 따라서, 정렬을 통해 2가지 기준점을 한가지로 줄일 필요가 있다. 예를 들어 서류|면접 1 | 4 3 | 2 4 | 1 5 | 5 2 | 3 이렇게 정리되어 있는 표의 경우 두가지 기준에 조건을 고려해야.. [Python] 그리디- 1715. 카드 정렬하기(골4) https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net >>문제 포인트(자료구조) : 작은 값부터 출력이 가능하도록 최소힙 사용 : 계산기 예제처럼 최소1+ 최소2를 더해주고 더한값을 다시 push : result값 출력 from heapq import heappush, heappop heap=[] n= int(input()) for _ in range(n): heappush(heap,int(input())) result=0 while(.. 이전 1 ··· 14 15 16 17 18 19 20 ··· 24 다음