분류 전체보기
-
[Algorithm - 프로그래머스] Python 전력망을 둘로 나누기Programming/Algorithm 2021. 11. 23. 21:06
문제 (LV.2) https://programmers.co.kr/learn/courses/30/lessons/86971 코드 answer = 0 def bfs(wires, checked, num, cnt): global answer q = [num] while len(q) != 0: cur = q.pop(0) for i in range(0, len(wires)): if wires[i][0] == cur: if checked[wires[i][1]] == 0: checked[wires[i][1]] = 1 q.append(wires[i][1]) cnt += 1 elif wires[i][1] == cur: if checked[wires[i][0]] == 0: checked[wires[i][0]] = 1 q.ap..
-
[Algorithm - 프로그래머스] Python 조이스틱Programming/Algorithm 2021. 11. 21. 16:29
문제 (LV.2) https://programmers.co.kr/learn/courses/30/lessons/42860 코드 def solution(name): answer = 0 # 문자를 배열 숫자로 변경 -> ascii로 변경하여 최소 순서 arr_name = [min(ord(i) - ord('A'), ord('Z') - ord(i) + 1) for i in name] idx = 0 while True: answer += arr_name[idx] arr_name[idx] = 0 if sum(arr_name) == 0: break left, right = 1, 1 while arr_name[idx - left] == 0: left += 1 while arr_name[idx + right] == 0: ..
-
[Algorithm - 프로그래머스] Python 숫자 문자열과 영단어Programming/Algorithm 2021. 10. 21. 00:40
문제 (LV.1) https://programmers.co.kr/learn/courses/30/lessons/81301 코드 def solution(s): answer = '' num = {"zero" : '0', "one" : '1', "two" : '2', "three" : '3' , "four" : '4', "five" : '5', "six" : '6', "seven" : '7' , "eight" : '8', "nine" : '9' } tmp_words = "" for i in s: if i.isdigit(): answer += i continue tmp_words += i if tmp_words in num.keys(): # dictionary key 안에 단어가 존재한다면 answer += nu..
-
[Algorithm - 프로그래머스] Python 신규 아이디 추천Programming/Algorithm 2021. 10. 20. 23:23
문제 (LV.1) https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 코드 import re def dot_deleted(ans): if ans[0] == '.': ans = ans[1:] elif ans[-1] == '.': ans = ans[:-1] return ans def solution(new_id): answer = "" # 1단계 소문자로 변경 tmp = new_id.lower() # 2단계 ..
-
[Algorithm - 프로그래머스] Python 로또의 최고 순위와 최저 순위Programming/Algorithm 2021. 10. 19. 14:30
문제 (LV.1) https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 코드 def solution(lottos, win_nums): answer = [0, 0] rank = [6, 6, 5, 4, 3, 2, 1] ans = 0 zero_cnt = lottos.count(0) for i in win_nums: if i in lottos: ans += 1 answer[0..
-
[Algorithm] Python 1부터 n까지의 합Programming/Algorithm 2021. 9. 23. 23:47
* 본 문제는 코드잇에서 제공하는 문제이므로 자세한 문제 내용은 적지 않겠습니다. [문제] 1부터 n까지의 합을 divide and conquer(분할정복)으로 풀기 [해설] consecutive_sum(1, 10) 1을 start, 10을 end 로 생각했을 때, 두 case를 base case로 만들 수 있는 경우를 생각한다. 재귀함수를 생각했을 때, start값과 end값이 같게되면, 더 이상 연산이 필요 없어지므로, 그대로 start 또는 end값을 return 하면되는 base case가 충족된다. 부분문제를 반으로 나누어졌을 때, recursive하게 풀어 그 return 값들을 서로 더하며 답을 찾아간다. [코드] def consecutive_sum(start, end): if start =..
-
[Algorithm] Python 강남역 폭우Programming/Algorithm 2021. 9. 22. 22:13
* 본 문제는 코드잇에서 제공하는 문제이므로 자세한 문제 내용은 적지 않겠습니다. [문제] [3, 0, 0, 2, 0, 4] [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1] [해설] 위와같이 빨간색으로 표시된 곳이 빌딩이고, 하늘색으로 채워지는 곳이 빗물이 담길 수 있는 공간이다. 빗물이 담길 수 있는 하늘색 공간의 총 합을 구하는 것이 문제이다. 처음에 고려했던 풀이는 효율성이 떨어지는 것 같아 힌트를 참고하여 풀었다. 1. 양 쪽 끝 인덱스에는 물이 찰 수 없으므로 제외하고 1번 index부터 end - 1 인덱스까지 고려한다. 2. 현 인덱스를 기준으로 왼쪽의 가장 큰 값과 오른쪽의 가장 큰 값을 저장한다. 3. 왼쪽 max값과 오른쪽 max값을 비교하여 더 작은 값을 빗물이 고일..
-
[Machine Learning] Teachable MachineProgramming/Machine Learning 2020. 9. 2. 01:08
Teachable Machine이란? - 머신러닝에 대한 지식 없이도 머신 러닝을 이용할 수 있도록 고안된 도구 https://teachablemachine.withgoogle.com/ Teachable Machine Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or coding required. teachablemachine.withgoogle.com 위 링크에 들어가 모델을 학습시키고 코드로 다운받을 수 있다!! 자세한 방법은 구글에 잘 나와있으니 참고! - 위..