일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 테스트
- deque
- 하카타역
- DP
- 다이나믹 프로그래밍
- 알고리즘
- 후쿠오카 캐널시티
- 깊이 우선 탐색
- 삼성테스트
- 너비 우선 탐색
- 후쿠오카 4박 5일
- 시뮬레이션
- BOJ
- dfs
- 후쿠오카 여행경비
- 후쿠오카 요도바시 하카타
- 완전 탐색
- 큐
- queue
- BFS
- 백준
- 플로이드
- 완전탐색
- 삼성시험
- 플로이드 와샬
- brute force
- IOS
- 후쿠오카
- 일본 여행
- Today
- Total
목록블로그 (114)
맛있는감귤
문제 : https://www.acmicpc.net/problem/5214출처Contest > Croatian Open Competition in Informatics > COCI 2012/2013 > Contest #5 4번 이 문제는 입력만 잘 받으면 BFS로 해도 시간초과가 나지 않는다.핵심은 임의의 열의 개수를 어떻게 vector에 push하느냐 이다.문제 테스트 케이스를 돌려보면1 : 10 11 2 : 10 3 : 10 12 4 : 11 5 : 11 13 6 : 12 13 14 7 : 12 13 8 : 14 9 : 14 10 : 1 2 3 11 : 1 4 5 12 : 3 6 7 13 : 5 6 7 14 : 6 8 9 가 나온다. 잘 활용해서 풀어보도록 하자. 12345678910111213141..
문제 : https://www.acmicpc.net/problem/14226간단한 BFS이지만 visited 배열을 잘 활용하지 못한다면 원하는 정답이 안나올 것이다.현재 글자수 뿐만아니라 클립보드에 저장 돼 있는 글자 수도 고려해줘야 한다.핵심 visited[글자수][클립보드]1234567891011121314151617181920212223242526272829303132333435363738394041#include #include using namespace std;int S,cnt=0;queue q;bool visited[2002][2002];int main(){ scanf("%d",&S); q.push(make_pair(1, 0)); visited[1][0]=1; while(!q.empty()..
문제 : https://www.acmicpc.net/problem/13913기존 1697 숨바꼭질 과 같은 문제지만 추가로 지나온 경로를 출력을 요구한다는 점에서 차이가 있다.처음에는 queue에 경로 벡터를 추가해서 노드마다 경로 값을 가지는 무식한 짓을 벌였다.어처피 목적지에 도달하는 최소 경로중 하나만 출력하면 되기 때문에 배열 하나로 지나온 경로를 관리하는 방법으로 AC를 얻었다.visited[다음 경로] = 현재 경로 가 된다. 그리고 목적이에 도달했을 때 목적지에서 출발지까지 뒤로 탐색해 vector에 push한 다음 다시 출력하게 되면 원하는 경로가 출력될 것이다.123456789101112131415161718192021222324252627282930313233343536373839404..
버전 정보Android Studio 2.3.1Android 4.4(Kitkat , minSDK : API 11 HoneyComb)BottomBar API : https://github.com/roughike/BottomBar아래 움짤처럼 음악 앱, 다양한 앱에서 하단에 액션 바, 혹은 탭, 버튼이 보여지는 앱을 보신적이 있을거에요. 보통 이 것을 bottombar 라고 부릅니다. view flipper나 view pager로 비슷한 기능을 구현할 수 있는데 퀄리티에서 많이 차이나기 때문에 API를 이용하여 만들어보도록 하겠습니다.들어가기 전에 - 해당 API github에 개요와 데모 파일이 있으니 그것을 보셔도 됩니다. - bottom bar API는 위에 기재된 API말고도 다양한 API가 있지만 저..
문제 : https://www.acmicpc.net/problem/14442 벽 부수고 이동하기의 업그레이드 문제입니다.기존의 문제는 벽 부술 수 있는 기회가 한번뿐이지만 이 문제는 K번이라는 것 빼고는 같은 문제에요.visited배열을 3차원으로 만들어 visited[r][c][0 or 1 벽 부수기 스킬 사용 여부]를visited[r][c][k]로 관리해주면 그만입니다.입력이 뭉쳐서 나오니 잘 해결합시다. 저는 char 배열로 이어서 받았습니다.int형 배열로 받고 싶다면 반복 for문으로 scanf("%1d",&map[i][j]); 이런 식으로 받으면 되겠죠.그리고 이동이 1부터 시작하는 것도 유의하신다면 쉽게 AC받으실 수 있을거에요~코드의 이해 안되시는 부분은 댓글 남겨주시면 정성껏 답변 해드리..
문제 : https://www.acmicpc.net/problem/9095출처ACM-ICPC > Regionals > Asia > Korea > Asia Regional - Taejon 2001 PC번 DP로 해결할 수 있는 문제입니다.1부터 4까지만 보면dp[1] = 1dp[2] = 1+1, 2dp[3] = 1+2, 1+1+1, 2+1, 3dp[4] = 1+3, 1+1+2, 2+2, 1+1+1+1, 1+2+1, 2+1+1, 3+1 이렇게 된다. 자세히보면 i번째 값은 i-1, i-2, i-3번째를 합한 값과 같다.12345678910111213#include int main(){ int T; scanf("%d",&T); while(T--){ int N, n[12]; n[0]=0, n[1]=1, n[2]..
프로그래밍 대회: C++11 이야기 from Jongwook Choi 프로그래밍 대회시 유용할만한 정보가 정리되어 있어서 스크랩해왔습니다.제목에 써있는대로 C++11 기준입니다. 목록 auto : 8pRange-based for : 9pInitializer lists : 15pTuple : 21pSTL 컨테이너 : 26pLambda Function : 30pMove Semantics : 40pR-Value Reference : 43pMove Constructor : 48pstd::array : 53pStandardize Timer Library : 54pRegex(정규식) : 55pRandom Library : 56p그 외 -
문제 : https://www.acmicpc.net/problem/11657최단거리를 찾는 문제같은데 타임머신이 있거나 시간을 역행하는 문제, 음수 가중치가 존재하는 대다수의 문제는 벨만-포드 알고리즘으로 해결가능합니다.다익스트라 알고리즘 같은 경우 해당 노드에 존재하는 간선을 보고 가중치가 가장 작은 값을 선택하게 됩니다.그렇기 때문에A -> B -> C / A -> C 의 루트에서1 5 -4 1 3의 값을 가질 때 노드 A의 간선의 가중치 5와 3만을 비교하기 때문에 원하는 답을 도출할 수 없습니다.왜냐하면 1 -> 5 -> -4이 더 최단 거리가 되기 때문이죠.그렇기 때문에 간선을 비교하고 또 노드의 개수-1만큼 또 비교를 해주면 됩니다. (도착지 노드까지 가는 간선은 전체 노드개수를 넘지 않기 때..
문제 : https://www.acmicpc.net/problem/9517출처Contest > Croatian Open Competition in Informatics > COCI 2013/2014 > Contest #2 1번 원형 식탁에서 210초를 넘겼을 때 폭탄을 가지고 있는 사람을 출력하면 됩니다.이렇게 원형인 구조가 있을 때는 %로 관리해주면 편하게 할 수 있습니다.저는 시작이 0이 아닌 1부터 시작이기 때문에 헷갈려서 처음 입력받을 때 -1 해주고 출력할 때 다시 +1 해주었습니다. #include int main(){ int pos, N, total_time = 210; scanf("%d %d",&pos, &N); --pos; for(int i=0;i
문제 : https://www.acmicpc.net/problem/1726출처Olympiad > 한국정보올림피아드시․도지역본선 > 지역본선 2005 > 고등부 3번 명령어 go K의 의미를 잘못 해석해서 해맸었는데 결론은 총 다섯 가지 방법을 탐색하면 됩니다go 1, go 2, go 3, 90도 회전 -90도 회전.가장 중요한 것은 visited배열의 활용, 예외사항 판별, 실행 가능한 명령어 구분입니다.1. 방향 구분없이 이동만 한다면 좌표에 해당되는 2차원 visited배열을 만들었겠지만 방향이 존재하기 때문에 방향에 따른 visited배열을 추가하여 3차원 배열 생성2. 맵 이탈, 재방문, 궤도가 아닌 곳을 예외처리3. go 1,2,3 / 90도, -90도 회전먼저, 좌표와 방향, 그리고 명령어 횟..