| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- SW역량테스트
- 완전탐색
- Blind
- 싸피
- DFS
- algorithm
- 자바스크립트
- SWEA
- 그래프
- sort
- 삼성
- 파이썬
- 스택
- 백준
- kakao
- 코딩테스트
- 알고리즘
- boj
- BFS
- 코테
- SSAFY
- 힙큐
- 다이나믹프로그래밍
- 카카오
- javascript
- Backjoon
- 자료구조
- DP
- Python
- 프로그래머스
- Today
- Total
목록algorithm (50)
맞왜틀
문제 해결 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..
문제 해결 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..
문제 해결 1. 학생들의 정답을 찍는 패턴을 배열에 담는다. 2. 학생들이 찍은 정답과 문제의 정답을 차례차례 비교한다. (1) 이 때, 학생들의 정답 패턴 길이보다 문제 배열의 길이가 길 경우 (2) 현재의 인덱스를 정답 패턴 길이로 나누고 나머지를 구한다. (3) 학생들의 정답을 맞출 경우 스코어를 +1씩 올려준다. 3. 세 학생의 스코어중 가장 큰 값을 구하고 4. 가장 큰 값과 학생의 점수가 같으면 정답에 푸쉬 해준다. 🌤 토스 코딩테스트를 준비하기 위해 오늘부터 자바스크립트로 기본적인 문제를 풀며, 언어를 익히기로 했다! 최근 프론트엔드를 맡아 프로젝트를 진행하며 자바스크립트를 많이 사용해서 크게 어렵지 않았지만, 알고리즘을 푸는것과는 많이 달라서 조금 더 공부해야 할 것 같다. 🟢 const ..
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) 만들어 놓은 수식 배열은 여러번 계산(연산자..
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 ..
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..