알고리즘

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

[프로그래머스] Level1 | 정수 제곱근 판별 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 프로그래머스에서 레벨1 연습문제를 왕창 풀다가 기억해두면 좋을 것 같은 문제라서 따로 포스팅을 하게 되었다. 정수 제곱급 판별 문제로 math 모듈을 쓰면 엄청 편하다! 정답 코드 import math def solution(n): if math.sqrt(n).is_integer() : return (math.sqrt(n)+1)**..

Algorithm

[프로그래머스] Level1 | 이상한 문자 만들기 - 파이썬(Python) | 연습문제

https://programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 프로그래머스에서 뭔가 예전에 비슷한 문제를 푼 것만 같았던 '이상한 문자 만들기'를 풀었다. 왜이렇게 푼 것만 같지.. 왜지.. 첫번째 시도 - 테스트 케이스에서 왕창 틀림 def solution(s): answer = [] strings = s.split("") for i in range(len(strings)) : strings[i] = list..

토오오끼
'알고리즘' 태그의 글 목록 (2 Page)