문제 링크: www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. www.acmicpc.net 풀이 방법 [min, max] 구간의 최대 원소 개수는 1000001이므로 bool arr[1000001]을 선언하고 여기에 min~max구간의 수가 제곱ㄴㄴ수인지 아닌지 저장해줬다. arr[0]: min이 제곱ㄴㄴ수인지, arr[1]: min + 1이 제곱ㄴㄴ수인지 ... 일단 모두 제곱ㄴㄴ수라고 가정하고 시작한다. (memset을 통해 모두 true로 초기화한다.) 그다음 2부터..
문제 링크: www.acmicpc.net/problem/2213 2213번: 트리의 독립집합 첫째 줄에 트리의 정점의 수 n이 주어진다. n은 10,000이하인 양의 정수이다. 1부터 n사이의 정수가 트리의 정점이라고 가정한다. 둘째 줄에는 n개의 정수 w1, w2, ..., wn이 주어지는데, wi는 정점 i의 www.acmicpc.net 새로 알게 된 것 int& result = cache[stage][idx]; 는 cache[stage][idx]라는 변수에 result 라는 별명을 붙여주는 개념.(같은 주소를 참조함) 즉, 두 개는 이름만 다르지 같은 변수이다. result의 값을 변경하면 cache[stage][idx]의 값도 같이 바뀐다. 소스 코드 #include #include #includ..
문제 링크: www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net #include #include #include #include #include #define MAX 100 #define INF 10000 using namespace std; int n, islandNum, answer; int map[MAX][MAX]; // 입력 받아 지도 값 저장(0:바다/1:육지) >> 이후 섬 번호 붙여줌 bool visit[MAX][MAX]; // BFS탐색 시, 방문 여부..
문제 링크: www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 풀이 방법 int W[16][16]; //도시 i에서 j로 가기 위한 비용(갈 수 없는 경우는 0) int dp[16][1
문제 링크: www.acmicpc.net/problem/1662 1662번: 압축 압축되지 않은 문자열 S가 주어졌을 때, 이 문자열중 어떤 부분 문자열은 K(Q)와 같이 압축 할 수 있다. K는 한자리 정수이고, Q는 0자리 이상의 문자열이다. 이 Q라는 문자열이 K번 반복된다는 뜻이 www.acmicpc.net #include #include #include using namespace std; string s; int visited[50]; int ans; //바깥쪽에서 안쪽으로 계산해 나감 int calc(int start, int end) { int result = 0; for (int i = start; i < end; i++) { if (s[i] == '(') { int k = s[i - 1..
문제 링크: www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2~1000000까지 1로 만드는 최소 연산 횟수를 먼저 계산한다. 작은 수에 대해서 먼저 계산하고 그 값을 저장해 재활용함으로써 불필요한 연산을 줄일 수 있다. #include #include using namespace std; #define MAX 1000001 int arr[MAX]; //1로 만드는 연산 횟수 저장 void count() { for (int i = 2; i
문제 링크: www.acmicpc.net/problem/1398 1398번: 동전 문제 김형택이 세운 나라의 화폐 체계는 단순하다. 이곳은 동전만 사용하고, 동전은 다음과 같이 다른 값을 가진다. 1, 10, 25, 100, 1000, 2500, 10000, 100000, ... 식으로 나타내면 0보다 크거나 같은 모든 K에 www.acmicpc.net 1, 10, 25, 100, 1000, 2500, 10000, 100000, ... 화폐단위가 100씩 곱한 값으로 끊어진다는 것을 캐치하면 쉽게 풀리는 문제이다. 현재 지불해야하는 금액 중 100으로 나눈 나머지는 어차피 100 이하의 금액인 동전(1, 10, 25)로만 지불할 수 밖에 없다. 따라서 1~99 금액에 대한 필요한 동전 개수를 계산해 dp..
문제 링크: www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 후위 표기식과 후위 표기식 변환 알고리즘에 대한 자세한 설명은 아래 포스트에서 확인할 수 있다. 후위 표기식과 변환 알고리즘에 대한 자세한 설명 후위 표기식 변환 및 계산 알고리즘 수식 표기 방법 수식 표기 방법에는 전위, 중위, 후위 표기법이 있다. 우리가 일반적으로 사용하는 표기법은 중위 표기법이다. 중위 표기법: 연산자가 피연산자 가운데 위치. 전위 표기법: 연산 crong-dev.t..
- Total
- Today
- Yesterday
- React
- sql
- 회고
- reactjs
- 스택
- 후위표기식
- 큐
- 컴퓨터공학
- 카카오추천팀
- JS
- plotly
- MySQL
- 머신러닝
- 컴퓨터과학
- 개발
- 리액트
- dash-plotly
- dfs
- 우선순위큐
- 백준
- 자바스크립트
- Dash
- 알고리즘
- 코드포매터
- 다이나믹프로그래밍
- 코테후기
- 프로그래머스
- 동적계획법
- c++
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |