문제 https://programmers.co.kr/learn/courses/30/lessons/67257 계산식을 문자열로 입력받아 계산을 하는데, 연산자 우선순위(같은경우는 없고 다 달라야함)에 따라 계산값이 달라지는데, 이 중 최댓값을 출력하는 문제. 문제 규칙상 계산식의 결과가 상금임으로 음수가 나올 경우 절댓값으로 계산. 접근 방법 위 문제를 풀려면 우선 사칙연산을 할 줄 알아야 한다. 사칙연산 문제에서 연산자 우선순위가 추가된 문제. 사칙연산을 풀려면 연산자 우선순위에 따라 계산하기 편한 후위 표기법으로 변경하여 풀 수있다. 즉 식을 Stack을 사용해서 후위 표기법으로 변경 후위 표기법 계산 방법을 Stack을 사용해서 풀이 과정을 통해 풀 수 있다. 식을 후위 표기법으로 변경 방법 var ..
문제 https://programmers.co.kr/learn/courses/30/lessons/12953 자연수 array 입력받으면 array 수들의 최소 공배수 return 접근 방법 유클리드 알고리즘을 사용하면 두 수의 최소공배수를 빠르게 구할 수 있다. > 유클리드 알고리즘 두 수 a, b가 있으면 최소 공배수는 a*b / 최대 공약수 인데, 최대 공약수 구하는 방법은 r = a&b 에서 나눈 나머지를 r이라고 하면 if r == 0 {b는 최대 공약수} else { b = a a = r // 로 해서 다시 반복 } 하다 보면 최대 공약수가 구해진다. 위 과정은 소인수 분해를 하는 과정을 사용한 것이다. 최대 공약수를 구했으면 이 값을 이용해 최소 공배수를 구할 수 있다. 최소공배수 ..
문제 https://www.acmicpc.net/problem/9663 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 접근 방법 백트레킹 문제. dfs로 접근하되, 필요없어 보이는 노드는 무시하며 탐색(프루닝) 처음엔 2차원 배열로 둘 수 있는 공간 true 둘 수 없으면 false 로 두고 채크하는식으로 풀었는데 시간초과.. 불필요한 부분들 줄여가면서 라인 한줄만 체크하면 된다는걸 알게되서 대각선 체크를 굳이 다 하지 말고 depth 한칸당 좌우 shift를 해줌으로써 해결 코드 풀이 1 (시간초과 ㅠ) 풀이 2(통과)
문제 https://www.acmicpc.net/problem/1780 n*n 크기의 수를 입력받음 (n받고, n 만큼 한라인씩 입력받음) 각 칸에는 -1, 0 , 1 중 하나의 값을 입력받음 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이런 식으로 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성 접근 방법 음.. 1번 2번 로직대로 메소드를 짜고 while 돌리면 되지 않을까? 종이가 같거나 라인크기가 3일때 계산 후 나오고.. 범위가 크기 때문에 dfs으로 해야할 것 같기도..
- Total
- Today
- Yesterday
- 카카오 블라인드2018
- BaseViewController
- 자기PR
- VIPER 패턴
- 백준 1946
- 아키택처
- 알고리즘
- 1차 뉴스 클러스터링
- Swift
- Level 3
- 프로그래머스 추석트래픽
- RxDataSource
- presentStyle
- UIModalPresentationStyle
- RxSwift
- TransitionStyle
- Widget
- 괄호연산
- 카카오블라인드2018
- Github Search
- 위젯
- 프로그래머스 오픈채팅방
- BaseTableViewController
- today extension
- ios
- 백준 신입사원
- ReactorKit
- 프로그래머스 캐시
- Stack
- 카카오 블라인드 2018
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |