Algorithm

Algorithm

[프로그래머스] Level1 | 예산 - 파이썬(Python) | Summer/Winter Coding(~2018)

https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다. 곰곰히 생각해보니 그럴 필요 없이 for문 하나만으로도 해결을 할 수 있을 것 같았다. 정답 풀이 def solution(d, budget): answer = 0 d = sorted(d) for i in range(len(d)) : if budget >= d[i] : budget -= d[i]..

Algorithm

[프로그래머스] Level2 | 전화번호 목록 - 파이썬(Python) | 해시(Hash)

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 정말 이해가 안되는 문제였다!! 문제가 이해가 안되는게 아니고 내가 푼 풀이는 왜 통과가 안되는지?가 의문인 문제이다 ㅋㅋㅋㅋ... 해시 문제라고 되어있지만 나는 해시를 이용하지 않고 풀었다. 첫번째 시도 - 테스트 케이스 왕창 틀림, 효율성 2/4 틀림 def solution(phone_book): answer = True phone_book = sorte..

Algorithm

[프로그래머스] Level2 | 기능개발 - 파이썬(Python) | 스택/큐(Stack/Queue)

https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 프로그래머스에서 놀랍게도 72개의 레벨1 문제 중 11개만 남겨두고 있다.... 푼 개수가 무슨 의미가 있나 싶지만 그래도 약 85%를 푼 기념으로 레벨2를 풀어봤는데 난이도가 급 어려워져서 꽤 오래 붙잡고 있었다... speeds가 주어질 때 마다 각 배포 시 몇개의 기능이 배포될 수 있는지 구하는 문제이다. 이전 기능이 배포가 되지 않으면 뒤에 있는 ..

Algorithm

[프로그래머스] Level1 | 음양 더하기 - 파이썬(Python) | 월간 코드 챌린지 시즌2

https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr absolutes와 signs의 길이가 같기 때문에 for문 한번으로 해결할 수 있었다. 참일 땐 양수니까 그대로 뒀고 거짓을 땐 음수이므로 음수로 바꾸기 위해 값에 2를 곱해서 빼주었다. 정답 코드 def solution(absolutes, signs): for i in range(len(absolutes)) : if signs[i] =..

Algorithm

[프로그래머스] Level1 | 행렬의 덧셈 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스 레벨1에서 '행렬의 덧셈' 문제를 풀었다. 쉽다고 생각하고 풀었는데 막상 아이디어가 떠오르지 않아 시간을 생각보다 많이 썼다. 2차원 배열로 어떻게 출력을 할 수 있을까 생각을 하다가 굳이 answr라는 list를 만들어서 거기에 넣을 필요가 없을 것 같았다. 꼼수를 부릴 수 있을 것 같았고 arr1의 원소와 같은 위치에 있는 arr2의 원소들을 더해 주기만 하면 answr 리스트 없이 정답을 출력할 수 있었다. 정답 코드 def solution(arr1, arr2): for i in range(len(arr1)) : for j in range(len(arr1[0])) : arr1[i][j]..

Algorithm

[프로그래머스] Level1 | 하샤드 수 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 모든 자리수의 합을 구하는 부분에서 조금 버벅거렸는데 sum을 쓰기 위해서 각 자리수를 쪼갠 리스트를 만들었다. sum을 쓰려면 쪼갠 각 자리수들이 int형이어하는데 map을 사용하려면 x는 string이어야해서 좀 깔끔하지 못하게 코드를 짠 것 같다... 정답 코드 def solution(x): X = list(map(int, str..

Algorithm

[프로그래머스] Level2 | 타겟 넘버 - 파이썬(Python) | DFS/BFS

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 프로그래머스에서 DFS/BFS 문제인 타겟 넘버를 풀었다. 이코테에서 간단한 문제만 보다가 레벨2인데도 너무 어려웠다.. 더 많이 공부해야할 것 같다 ㅠ 혼자 힘으로 풀 수 없어 다른 사람들의 풀이를 참고해서 겨우 풀었다. 사실 이해를 제대로 했는지도 모르겠고 ㅋㅋ... 모든 풀이와 개념은 해당 링크 를 참고..

Algorithm

[프로그래머스] Level2 | 가장 큰 수 - 파이썬(Python) | 정렬

https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문자열 정렬 문제였는데.. 꽤 오래 걸렸다.. 바본가.. 처음 문제 보고 permutations 이용해서 풀어보려고 했다. 생각해보니 너무 불필요한 과정일 것 같았고 결국 또! 다른 사람의 풀이를 찾아다녔다. 여기서 이 문제는 '정렬'이라는 걸 잊고 있었다. 문자열 정..

Algorithm

[프로그래머스] Level1 | 콜라츠 추측 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 프로그래머스 레벨1 연습문제인 콜라츠 추측을 풀었다. while의 조건문만 제대로 입력하면 금방 풀 수 있는 문제이다. 정답 코드 def solution(num): answer = 0 while num != 1 : if answer > 500 : return -1 if num % 2 == 0 : num = num/2 elif num..

Algorithm

[프로그래머스] Level1 | 최대공약수와 최소공배수 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 프로그래머스 레벨1에 있는 최대공약수와 최고공배수 구하는 문제를 풀었다. 처음 문제를 보고 2개의 for문을 사용해서 최소 공배수와 최대 공약수를 n,m별로 구해야하나 생각을 했는데 그렇게 되면 시간 복잡도가 굉장히 비효율적일 것 같아서 다른 방법을 찾아봤다. 찾아보니까 최대공약수는 유클리드 호제법이라는 알고리즘으로 구할 수 있었..

토오오끼
'Algorithm' 카테고리의 글 목록 (2 Page)