본문 바로가기

전체 글

(58)
[BOJ/백준] 11047번 동전0 파이썬 DAY 2022.03.25 백준 11047번 동전0 파이썬 풀이 그리디 문제의 기본중에 기본 백준 11047번 동전0 파이썬 코드
[BOJ/백준] 1149번 RGB거리 파이썬 DAY 2022.03.25 백준 1149번 RGB거리 파이썬 5번예제를 보면 R G B 1번 71 39 44 2번 32선택시: 1번집의 G,B중에 min값+32 min(39+32, 44+32) 83선택시: 1번집의 R,B중에 min값+83 min(71+83, 44+83) 55선택시: 1번집의 R,G중에 min값+55 min(71+55, 39+55) 3번 i번째 dp[i]=리스트안에 data[i][0] +min(dp[i-1][1],dp[i-1][2]) data[i][1] + min(dp[i-1][0], dp[i-1][2]) data[i][2] +min(dp[i-1][0],dp[i-1][1]) 백준 1149번 RGB거리 파이썬 코드 dp[i]=[ data[i][0]+min(dp[i-1][1],dp[i-1][..
[PRO/프로그래머스] DFS/BFS 여행경로 파이썬 DAY 2022.03.25 삼일동안 끙끙 거리다가 결국 답을 봤지만 안봤으면 못풀었을 것 같음.. dfs를 너무 재귀로만 풀려는 생각이 크다..dfs에 스택이용이랑 while문도 익혀야겠다. 프로그래머스 DFS/BFS 여행경로 풀이 DFS와 BFS모두 가능하고, DFS가 더 풀기 쉽다. DFS풀이 ) ICN을 변수로 넣고 dfs문에서 원래는 스택으로 쌓고, tem=stack[-1]으로 확인한 후 딕셔너리에 다음 경로가 있으면 스택에서 다음 경로 append하고, 다음 경로가 없으면 answer.append하기!! ->이후 return answer하기 전에 answer를 reverse해서 return하기!! **내가 본 답안이 스택으로 append랑 pop하는 답안이라, 나는 재귀함수를 활용했다. BFS풀..
[PRO/프로그래머스] DFS/BFS 단어변환 파이썬 DAY 2022.03.24 프로그래머스 단어변환 풀이 처음에 정규표현식으로 풀어야하나 싶어서 한참을 정규표현식익히려고 서치했지만 정규표현식이 아니어도 풀 수 있음! 나는 BFS이용! start단어를 큐에 넣고, popleft한 큐의 단어와 모든 단어집합 비교(이중for문으로 단어 하나하나 글자 비교까지)->한글자만 다른 단어라면 다음 큐에 append( 단어와 함께 cnt+1값도 append) 프로그래머스 단어변환 코드
[BOJ/백준] 2579번 계단 오르기 파이썬 DAY 2022.03.24 짧은 코드와 그렇지 못한 정답률(34%..) 실버3이라고 만만하게 봤다가 몇시간을 잡힌건지!! 사람들 똑똑하네.. 백준 2579번 계단오르기 풀이 두가지 경우 중 큰 값을 dp[i]에 저장해야 한다. 현재 계단을 i라고 생각할때 이전 계단을 밟을 경우/안 밟을 경우가 있다. 전전전계단(i-3) 전전계단(i-2) 이전계단(i-1) 현재 계단(i) ? 알수없음 O X O 밟음 O X O O 밟음 이전계단은 안 밟는다면 현재 계단의 data[i]값과 + 전전계단(i-2,가장 최근밟은)의 dp[i-2]의 합 이전계단을 밟는다면 현재계단과 이전계단의 data[i]+data[i-1]과 + 전전전계단(i-3)의 dp[i-3]의 합 백준 2579번 계단오르기 코드
[BOJ/백준] 11052번 카드 구매하기 파이썬 DAY 2022.03.23 백준 11052번 카드 구매하기 풀이 n을 dp로 놓고 (dp 0~n+1까지 리스트) dp[n]개의 카드 구매할때 최대값을 dp에 저장 백준 11052번 카드 구매하기 코드
[PRO/프로그래머스] 해시 전화번호목록 파이썬 DAY 2022.03.23 프로그래머스 해시 전화번호목록 풀이 풀이방법이 3개나 있다. 1. sort후 문자열1.startswith(문자열2) 2. 이중 for문 그대로 사용하고 if문에 hash_ph으로 탐색하기. 3. 이중 for문 startswith으로 서로 접두어확인 프로그래머스 해시 전화번호목록 코드(1번풀이) 효율성FAIL했을때 코드(2번풀이에 해시 미사용) ->이렇게 풀면 효율성FAIL이라 해쉬를 사용해야 한다. hash_ph={}하고 값을 다 넣어준 후 이중 for문에서 if 문자열 in hash_ph and 문자열 !=phone_num : 해시 사용 정석 풀이(2번 풀이) 이중 for문 사용, 서로 startswith비교하기(3번 풀이)
[PRO/프로그래머스] 완전탐색 카펫 파이썬 DAY 2022.03.23 프로그래머스 완전탐색 카펫 풀이 약수를 구하는게 keypoint total(B+Y)의 약수를 구하고, 약수를 큰 수 부터(가로>세로니까) 하나씩 본다음 -> 가로*2 +세로*2 -4==brown이면 answer로 변경 프로그래머스 완전탐색 카펫 코드