algorithm

    [JavaScript] 프로그래머스 - K번째수

    [JavaScript] 프로그래머스 - K번째수

    문제 해결 1. 각 커맨드의 0,1 번째 숫자는 배열을 자르고, 2 번째 숫자는 값을 인덱스로 찾는다. 2. slice를 이용해 배열을 자른다. 3. sort()를 이용해 배열을 정렬한다. 4. 3번의 배열에서 숫자를 찾는다. 🌦 forEach, sort 에 대해서 학습해보자. 🟤 forEach arr4 = [2,5,3] arr4.forEach((n) => { console.log(n) }) // 2 // 5 // 3 forEach 안에서 함수를 정의하는 방법은 취향에 따라 알아서... 🟣 sort() arr4 = [12,2,1] arr4.sort() console.log(arr4) // 고장난다 | [1,12,2] arr4.sort((a,b) => { return a-b }) console.log(ar..

    [JavaScript] 프로그래머스 - 가운데 글자 가져오기

    [JavaScript] 프로그래머스 - 가운데 글자 가져오기

    문제 해결 1. 문자열의 길이가 짝수인지 홀수인지에 따라 다르게 판별한다. 2. 문자열의 길이가 짝수이면 (1) 두 글자를 출력해야 하므로 slice를 이용한다. (2) JavaScript에서는 바로 몫을 구하는 방법이 없으므로 (3) 나누기를 한 후 정수로 변환한다. 3. 문자열의 길이가 홀수라면 (1) 가운데 글자를 출력한다. 🌦 오늘은 정수변환 parseInt, 인덱싱 slice 를 익혔다. 🚗 parseInt a = 2.5 console.log(a) // 2.5 console.log(parseInt(a)) // 2 🚙 slice arr = ['banana', 'apple', 'grape', 'kiwi'] console.log(arr.slice(2)) // [ 'grape', 'kiwi' ] | 2..

    [JavaScript] 프로그래머스 - 모의고사

    [JavaScript] 프로그래머스 - 모의고사

    문제 해결 1. 학생들의 정답을 찍는 패턴을 배열에 담는다. 2. 학생들이 찍은 정답과 문제의 정답을 차례차례 비교한다. (1) 이 때, 학생들의 정답 패턴 길이보다 문제 배열의 길이가 길 경우 (2) 현재의 인덱스를 정답 패턴 길이로 나누고 나머지를 구한다. (3) 학생들의 정답을 맞출 경우 스코어를 +1씩 올려준다. 3. 세 학생의 스코어중 가장 큰 값을 구하고 4. 가장 큰 값과 학생의 점수가 같으면 정답에 푸쉬 해준다. 🌤 토스 코딩테스트를 준비하기 위해 오늘부터 자바스크립트로 기본적인 문제를 풀며, 언어를 익히기로 했다! 최근 프론트엔드를 맡아 프로젝트를 진행하며 자바스크립트를 많이 사용해서 크게 어렵지 않았지만, 알고리즘을 푸는것과는 많이 달라서 조금 더 공부해야 할 것 같다. 🟢 const ..

    [python] 프로그래머스 - 수식 최대화 / 보석 쇼핑 (2020 카카오 인턴십)

    [python] 프로그래머스 - 수식 최대화 / 보석 쇼핑 (2020 카카오 인턴십)

    1. 수식 최대화 문제 해결 1. 먼저 주어진 수식을 숫자와 연산자로 구분하여 분리 (1) 빈 배열과 숫자를 자리수마다 하나씩 쌓아 놓을 변수를 만들고 (2) 주어진 수식을 for 문을 돌린다. (3) 숫자가 나오면 | ex) 350일 경우 > tmp에 3을 더하고, 5를 더하고 0을 더해서 tmp='350' 을 만든다 (4) 연산자가 나올 경우 만들어 놓은 숫자(tmp)와 연산자를 차례로 배열에 추가 한다. tmp는 다시 초기화 (5) 3,4번을 반복하고 마지막 숫자는 다음에 올 연산자가 없으므로 끝날 때 배열에 추가해준다. 2. 연산자 우선순위 구해서 계산하기 (1) 연산자 3가지를 만들고, 퍼뮤테이션 함수를 이용해 연산자 3가지에 대한 순열을 생성 (2) 만들어 놓은 수식 배열은 여러번 계산(연산자..

    [python] SWEA - 1289. 원재의 메모리 복구하기

    [python] SWEA - 1289. 원재의 메모리 복구하기

    1. 원재의 메모리 복구하기 문제 해결 1. 인덱스 다루기. D3 2. for문으로 처음부터 끝까지 차례차례 검사한다. 3. 초기 메모리 값(init) 과 복구할 메모리 (n) 의 값을 차례차례 비교하며 4. 값이 다를 경우 다른 지점부터 끝까지 n의 값을 바꿔준다. 5. 이 때 카운트를 하나 씩 더해준다. 🌞 소스 코드 T = int(input()) for tc in range(1, T+1): init = list(input()) n = ['0']*len(init) cnt = 0 for i in range(len(n)): if n[i] != init[i]: n[i:] = init[i]*len(n[i:]) cnt += 1 print('#{} {}'.format(tc, cnt)) 출처: SW Expert ..

    [python] SWEA - 1961. 숫자 배열 회전/ 1970. 쉬운 거스름돈/ 10059. 유효기간

    [python] SWEA - 1961. 숫자 배열 회전/ 1970. 쉬운 거스름돈/ 10059. 유효기간

    1. 숫자 배열 회전 문제 해결 1. 2차원 배열 다루기. D2 2. 90도로 회전시키는 것만 코드를 완성하면 나머지는 90도 돌린것을 또 돌리면 된다. 3. 이번에 푼 방법은 1행에 있는 모든 값을 임시배열에 넣어두고 거꾸로 해준다음 하나씩 쌓아준다. 🌧 이것 말고도 많은 방법이 있는 것으로 기억한다. 😶 소스 코드 T = int(input()) for tc in range(1, 1+T): n = int(input()) lst = [input().split() for _ in range(n)] # 90 도 회전 lst_90 = [] for j in range(n): tmp = [] for i in range(n): tmp.append(lst[i][j]) tmp.reverse() lst_90.append..