본문 바로가기

전체 글93

프로그래머스 타겟넘버 python, BFS로 풀기 1. 문제 2. 설계 dfs와 bfs 둘 다 사용 가능 3. 알고리즘 dfs bfs queue memo 4. 구현 먼저 조금 더 익숙한 BFS로 다음과 같이 짰다. 1) - tuple 대신에 list 형태로 append해도 괜찮다. - while q: - +1 -1이 아니라 numbers에서 idx만큼 빼와야함. - append를 +1 -1 둘 다 해야 함 def solution(numbers, target): answer = 0 depth = len(numbers) d_cnt =1 q = [] q.append((numbers.pop(0),d_cnt)) while len(q): cur = q.pop(0) if cur[1]!=depth: d_cnt+=1 q.append((cur[0]+1, d_cnt)) q.. 2021. 6. 10.
프로그래머스 기능개발 python 1.문제 2. 설계 3. 알고리즘 4. 구현 총체적 난국.. 진짜 한동안 안했더니 왜 이렇게 되는 지 이해하는 데에 한참 걸렸다. 그래도 깔끔하게 이해하고 나니 내가 어떤 부분의 코딩을 잘못하고 있는 지 명확하게 이해했다. 통과답 def solution(progresses, speeds): answer = [] days = 0 count =0 while(len(progresses)): if(progresses[0]+days*speeds[0]>=100): progresses.pop(0) speeds.pop(0) count+=1 else: if count>0: answer.append(count) count=0 days+=1 answer.append(count) return answer import queu.. 2021. 6. 10.
프로그래머스 x만큼 간격이 있는 n개의 숫자 python3 1. 문제 2. 설계 3. 알고리즘 4. 구현 def solution(x, n): answer = [] for i in range(n): answer.append(x+i*x) return answer def solution(x, n): return [i*x+x for i in range(n)] 2021. 6. 1.
프로그래머스 평균구하기 python 1. 문제 2. 설계 3. 알고리즘 4. 구현 def solution(arr): answer = 0 return sum(arr)/len(arr) 너무 간편하다.... 😨 멘붕.. 2021. 5. 31.
프로그래머스 다트게임 cpp 1. 문제 2. 설계 3. 알고리즘 4. 구현 #include using namespace std; bool isNumber(char c){ if(c-'0'>=0 && c-'0' 2021. 5. 28.
프로그래머스 비밀지도 cpp 1. 문제 한 쪽이라도 벽(1)이 있으면 벽으로 처리하고, 둘 다 빈 공간(0)이면 빈 공간으로 처리해서 string을 출력! 2. 설계 3. 알고리즘 4. 구현 1) 문제의 조건에 맞는 OR 비트 연산을 한다. 2) cpp에서 십진수->이진수로 바꾸는 bitset를 한다. 자리수에는 int만 넣을 수 있고 변수를 넣을 수 없다. 3) bit연산 결과를 string으로 바꾸려면 bit.to_string() #include using namespace std; vector solution(int n, vector arr1, vector arr2) { vector answer; vector tmpV; for(int i=0; i 2021. 5. 24.
프로그래머스 약수의 개수와 덧셈 cpp 1. 문제 약수의 갯수에 따라 더하거나 뺀다. 2. 설계 약수의 갯수는 보통 짝수이다. 홀수가 되는 경우는 제곱수가 되는 경우이다. 제곱수는 나누기 연산을 한 결과가 나누기 대상과 같은 경우이다. 3, 알고리즘 4. 구현 #include using namespace std; bool squareNumber(int n){ for(int i=1; i*i 2021. 5. 24.
프로그래머스 실패율 cpp 1. 문제 실패율이 높은 스테이지부터 내림차순을로 스테이지 번호가 담긴 배열을 return한다. 2. 설계 (1) 게임을 이용하는 사용자의 수 stages.size()를 p라고 했을 때, 낮은 스테이지부터, (현재 보고 있는 스테이지에 있는 사람)/(전체 사람 수 중 이전 스테이지까지 있었던 사람)을 구하면 각 스테이지 별 실패율이 나온다. (2)스테이지번호와 실패율을 pair로 만들 {(1-실패율), stage넘버} 한 후 sort한다. 1-실패율을 넣는 이유는, 실패율은 높은 숫자 먼저(내림차순) , 같은 실패율에 대해서는 stage를 낮은 숫자에서 높은 숫자로(올림차순)으로 정렬해야하기 때문에 둘 중 하나를 바꿔서 정렬해야하기 때문이다. 3. 알고리즘 4. 구현: 정답코드 #include using.. 2021. 5. 23.
프로그래머스 로또의 최고 순위와 최저 순위 cpp 1. 문제 두 배열을 비교해서 같은 것과 다른 것의 갯수를 비교하는 것. 2. 설계 당첨번호를 map에 넣는다. 구매한 로또 배열을 돌면서 있는 값은 지우고 cnt를 증가시킨다. (0번은 없으므로) 최소값은 현재 cnt 최댓값은 cnt+0의 갯수로 리턴한다. 3. 알고리즘 4. 구현 #include using namespace std; vector solution(vector lottos, vector win_nums) { vector answer; map mp; int cnt=0; int zeros=0; for(auto iter: win_nums){ mp[iter]++; } for(auto iter: lottos){ if(mp[iter]) cnt++; if(iter==0) zeros++; } answe.. 2021. 5. 23.
반응형