일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹 프로그래밍
- 후쿠오카
- 백준
- 후쿠오카 캐널시티
- 완전 탐색
- 미로찾기
- queue
- 시뮬레이션
- 완전탐색
- BOJ
- BFS
- 후쿠오카 여행경비
- 플로이드
- deque
- 알고리즘
- 큐
- 후쿠오카 요도바시 하카타
- brute force
- 일본 여행
- 하카타역
- 삼성시험
- dfs
- 깊이 우선 탐색
- 삼성테스트
- DP
- 삼성 SW 테스트
- 플로이드 와샬
- 후쿠오카 4박 5일
- 너비 우선 탐색
- IOS
- Today
- Total
목록알고리즘 (85)
맛있는감귤
문제 : https://www.acmicpc.net/problem/2775 간단한 규칙을 찾는 문제다. 0층 n호수의 인원은 n명이다. 1층 n호수의 인원은 0층의 0호부터 n호수 인원의 합이다. 2층 1 4 10... 1층 1 3 6... 0층 1 2 3 ... 자세히 보면 k층의 n호수 인원은 k-1층 n호수 인원 + k층 n-1호수 인원이다. 코드는 아래처럼 짰지만 더 짧은 규칙이 있을것 같은데 생각이 나지 않는다 #include int ho[15][15]={0,}; int main(){ int T; scanf("%d",&T); while(T--){ int k,n; scanf("%d %d",&k,&n); for(int i=1;i
문제 : https://www.acmicpc.net/problem/8958 문제 출처 : ACM-ICPC > Regionals > Asia > Korea > Asia Regional - Seoul 2005 A번 문제 그외 링크 ACM-ICPC Live Archive TJU Online Judge #include #include using namespace std; int main(){ int T; scanf("%d",&T); while(T--){ string s;int cnt=0,ans=0; cin>>s; for(int i=0;i
문제 : https://www.acmicpc.net/problem/2577 곱한 수를 계속 나눠가며 배열[해당 수]의 카운트를 증가 #include int cnt[10]={0,},cnc; int main(){ int A,B,C; scanf("%d%d%d",&A,&B,&C); int N=A*B*C; for(; N != 0; ++cnt[N%10],N /= 10); for (int x:cnt) printf("%d\n",x); }
문제 : https://www.acmicpc.net/problem/2839github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/2839.cpp 입력 N을 3과 5의 조합으로 만들 수 있는 3,5의 최소 개수의 합을 출력하면 된다. 결국 반복문 문제 #include int main(){ int N,ans=-1; scanf("%d",&N); bool flag=false; for(int i=0; i tt) ans = tt; } } } printf("%d\n",ans); }
문제 : https://www.acmicpc.net/problem/1613 github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1613.cpp i사건과 j사건의 연결고리를 검사하고 배열에 입력하고 마지막에 검사해 출력하는 형식으로 코드를 작성했다. 플로이드 와샬 알고리즘으로 해결. 입력이 400이기 때문에 연산횟수가 1억이 안넘지만 cin을 이용하면 TLE가 발생하고 scanf 사용하면 AC 이런 경우 때문에 scanf 사용하는 버릇이 생긴다 ,#include using namespace std; int n,k,s; bool incident[401][401]; int main(){ //cin사용하니 TLE scanf("%d%d",&n,&k); whi..
문제 : https://www.acmicpc.net/problem/1600 github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1600.cpp 살짝 변형된 BFS 문제이다. 일반적으로 상하좌우로 움직이는 문제와는 달리 체스의 나이트처럼만 움직임을 설정해주면 간단하게 해결 가능하다. #include #include using namespace std; struct Pos{ int x,y,j; }; int map[202][202]; bool isVisited[202][202][32]; int px[12]={1,-1,0,0,-2, -2, 2, 2, -1, -1, 1, 1}; int py[12]={0,0,1,-1,1, -1, 1, -1, -2, 2, -2,..
문제 : https://www.acmicpc.net/problem/1389 케빈 베이컨이라는 배우가 영화를 많이 찍은걸로 유명하기 때문에 생긴 놀이라고 한다. 나와 전세계의 어떤 사람이든 6다리만 건녀면 아는 사이라는 이론으로 유명해졌다. 각설하고 문제는 장황하지만 연결고리가 가장 짧은 사람을 출력하면 해결가능한 문제다. 입력 N이 100이기 때문에 플로이드 와샬 알고리즘으로도 해결 가능 import java.util.Arrays; import java.util.Scanner; import java.io.IOException; public class Main { static final int INF = 99; public static void main(String[] args) throws IOExcep..
문제 : https://www.acmicpc.net/problem/1158 github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1158.cpp queue 두 개를 이용하여 한 쪽 queue에 있는 것을 다른 queue에 옮기며 해당 순번에 해당되는 사람은 push 하지 않고 출력 해준다. 다시 카운트 초기화하고 반대 queue에 옮기고 반복 #include #include using namespace std; int N, M; queue q1; queue q2; int main(){ cin>>N>>M; for(int i=1; i
문제 : https://www.acmicpc.net/problem/2776 github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/2276.cpp 기초적인 이진탐색 문제. 테스트 케이스도 하나가 아니기 때문에 반복문을 이용하면 TLE. algorithm 라이브러리에 binary_search 함수가 있기 때문에 사용하면 더 편하게 구현 가능하다. #include #include using namespace std; bool bs(int size,int a[],int m){ int low=0, high=size-1, mid; while(low
문제 : https://www.acmicpc.net/problem/1149 github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1149.cpp DP 문제 #include #include using namespace std; int N; int main(){ scanf("%d",&N); int a, b, c; int temp_a, temp_b, temp_c; scanf("%d %d %d",&a, &b, &c); for(int i=0;i