![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bYh8gl/btrQlNP3m5P/yPd7ME4duTAAuwMZJJnvpk/img.png)
코테이토 4기 알고리즘 스터디 - 11월 1주차 공통과제 A [프로그래머스] 문자열 내 p와 y의 개수 🎈 문제 및 해석 들어온 문자열 내에 있는 p와 y의 개수를 구하여라 1. 문자열 내에서 문자 찾기 2. 대소문자 구분 없이 함께 세기 위의 두가지를 할 수 있는지가 키포인트가 되겠다. ✨ 문제 풀이 # Python def solution(s): pCnt = yCnt=0; for c in s: if c == 'P' or c== 'p': pCnt+=1 elif c == 'Y' or c == 'y': yCnt+=1 return pCnt == yCnt // JavaScript function solution(s){ let pCnt=0; let yCnt=0; for(let i=0; i
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/Tgep8/btrN4O5EZ4u/JDbJwqc3zusro0bpfAUrk1/img.png)
코테이토 4기 알고리즘 스터디 - 10월 1주차 공통과제 A 약수의 합 구하기 🎈 문제 및 해석 입력 받은 수의 약수들의 합을 구하여라 1. 약수를 구하기 => 어떤 수 n을 n의 약수로 나누면 0이 된다(자연수 n의 약수 i에 대하여 n%i == 0)는 특성을 활용 2. 그 합을 구하기 = > 위의 조건에 부합하는 i들만 별도로 합 누적하기 ✨ 문제 풀이 // JavsScript function solution(n) { let sum = 0; for(let i=1; i Python은 삼항 연산자의 형태가 타 언어와는 조금 다르게 if else를 사용한다.
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/6UbdN/btrN33P3ony/VODAkOnMgfCnZwinOdSdy0/img.png)
코테이토 4기 알고리즘 스터디 - 9월 4주차 공통 과제 A 하샤드 🎈 문제 및 해석 입력 받은 수가 각 자리 수의 합으로 나누어 떨어진다면 True, 아니라면 False를 반환하는 함수를 만든다. 즉, 이 문제를 풀기 위해서는 각 자리 수의 합을 구하는 것이 중요하다. ✨ 문제 풀이 // JavaScript function solution(num) { let tmp = num; let digitSum=0; while(tmp){ digitSum += tmp%10 tmp = parseInt(tmp/10) } return (num%digitSum==0); } # python def solution(num): tmp = num; digit_sum = 0 while(tmp): digit_sum += tmp%10..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dt0a5Z/btruxkVVCS8/iipJA1r7vYixyNh6hiCC3k/img.png)
빠르게 궁금증 해소하기! (클릭시 관련 부분으로 바로 이동합니다.) ** 궁금한 것들 ❓ 매개변수의 변경으로 함수 밖의 변수 값이 변경될까? ❓ 전달받지 못한 함수 밖의 변수의 값을 가져올 수는 없을까? ❓ 입력값이 여러 개이고, 몇 개인지 구체적으로 셀 수는 없을 때 어떻게 하지? 함수 : ¹반복되는 연산을 한번에 정의함으로써 ²프로그램의 흐름을 일목요연하게 정리하기 위한 코드 뭉치 기본적인 형태는 다음과 같다. 이때, 입력값이나 출력값이 따로 필요하지 않다면 매개변수와 return는 생략할 수 있다. def 함수명(매개변수): ... return 매개변수 : 매개변수란 함수의 입력으로, 외부로부터의 전달받은 값을 저장한 변수 매개변수와 인자 ❗ 인자란 함수의 입력값으로 전달되는 값 자체를 의미한다. ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/c2okcP/btruryNAWGr/TKWr7Xwb4nKo2SUG8iV2Ik/img.gif)
이진 탐색 알고리즘 (Binary Search) : 정렬된 배열의 중앙값이, 찾으려는 값과 같은지 확인하고 다르다면 두 값의 대소 관계에 따라 범위를 중간값의 좌/우측으로 좁혀가는 탐색 알고리즘. 정렬된 배열에서만 사용 가능 오름차순(내림차순)으로 순회하는 선형탐색 알고리즘은 O(N)만큼의 시간이 듦 그에 반해 이진 탐색 알고리즘은 시간복잡도가 O(logN)으로 훨씬 줄어듦. 메인 로직 1. 주어진 배열의 양 끝값을 low, high로 설정한 후 중앙값의 인덱스(j)을 찾는다. 2. target이 배열의 중앙값보다 작다면 high = j-1로, target이 배열의 중앙값보다 크다면 low = j+1로 재설정하여 범위를 변경한다. 3. target과 중앙값이 일치할 때까지 2.의 과정을 반복한다. 4. ..