알고리즘12 [프로그래머스] level 1 - 체육복 (탐욕법) def solution(n, lost, reserve): answer = 0 size_min = 0 save = set([]) Re_set = set([]) for i in reserve: Re_set.add(i) for i in Re_set: for j in lost: if i==j: lost.remove(j) reserve.remove(i) size_min = n - len(lost) for i in reserve: for j in lost: if i+1 == j or i-1 == j: save.add(j) break answer = size_min+len(save) return answer 이문제에서 고려해야 할 조건은 여분의 체육복이 있는학생과 잃어버린 학생이 같은 경우 이다.사실 집합의 속성을 .. 2020. 8. 20. [프로그래머스] level 1 - 다트게임 #include #include using namespace std; int solution(string dartResult) { int answer = 0; vector score; int index=0; for(int i=0;i 숫자인경우 score 라는 벡터에 따로 저장을 하고 그 안에서 숫자를 조정해야한다. 만약 숫자인데, 다음문자열이 0 인 경우는 10 의 숫자를 뜻하므로 score에 10 을 넣어주고 i는 +1 을 해주어야 다음 문자를 제대로 잡을수 있다. 또한 숫자인경우 해당 저장할 벡터의 인덱스를 설정해야한다. 벡터는 0,1,2,3 ... 이런식으로 하나씩 뒤에서부터 저장되기 때문에 저장되는 숫자를 하나씩 가지고 놀수있도록 해당되는 숫자의 인덱스를 파악해야한다 . 따라서 차례로 인덱스가 늘.. 2020. 5. 16. [프로그래머스] level 1 - 시저암호 #include #include using namespace std; string solution(string s, int n) { string answer = ""; for(int i=0;i'Z' && s[i] 원래의 문자에서 1을 증가했을경우를 두고 범위를 계산한다. 4. 소문자의 경우 1증가했을때 z 보다 커진다면 해당 문자열을 소문자 a 로 설정하고 돌리면 된다. 5. 대문자의 경우 1증가했을때 Z 보다 커진다면 해당 문자열을 대문자 A로 설정하고 돌리면 된다. -> 대문자 Z 의 경우 소문자 z보다 아스키의 숫자가 작기 때문에 , 소문자 'a'보다 작을경우 를 꼭 추가하여 넣어주어야 한다. 2020. 5. 16. [프로그래머스] level 1 - 비밀지도 #include #include #include using namespace std; vector solution(int n, vector arr1, vector arr2) { vector answer; string tmp1; string tmp2 =""; for(int i=0;i 16의 크기로 정의했기때문에 16-n부터 16까지 비교하도록 함 3. 만약 OR로 연산한 값이 1이라면 #으로 , 0이면 공백으로 저장함 => tmp2 라는 string 변수를 정의하고 그값 뒤로 이어붙임 4. 저장된 값 tmp2를 answer안에 저장함 5. tmp2를 초기화 시킴 => 그 다음 배열을 저장하기 위해 꼭 필요한 조건임 bitset을 정의할때 크기를 받아서 정의할수 없음. 여러 방법을 찾아봤.. 2020. 5. 8. 이전 1 2 3 다음