본문 바로가기
728x90

전체 글255

2667 단지번호 붙이기 (bfs) https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 단지번호붙이기 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 48735 18951 12275 37.889% 문제 과 같이 정사각형 모양의 .. 2020. 2. 6.
11724 연결요소의 개수 BFS 풀이 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. www.acmicpc.net 연결 요소의 개수 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 3 초 256 MB 23228 11421 7514 46.740% 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1.. 2020. 2. 5.
11724 연결요소의 개수 dfs https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. www.acmicpc.net 연결 요소의 개수 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 3 초 256 MB 23228 11421 7514 46.740% 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1.. 2020. 2. 5.
11053 LIS(Longest Increasing Subsequence) https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. www.acmicpc.net 가장 긴 증가하는 부분 수열 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 40582 15259 10349 37.190% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, .. 2020. 2. 4.
1260 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 82797 26581 15511 30.943% 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가.. 2020. 1. 30.
2579 계단 오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 www.acmicpc.net 계단 오르기 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 50095 20106 14701 39.415% 문제 계단 오르기 게임은.. 2020. 1. 22.
1149 RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이고, 첫 집과 마지막 집은 이웃이 아니다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠하는 비용의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net RGB거리 실패 시간 제한메모리 제한제출정답맞은 사람정답 비율 0.5 초 (추가 시간 없음) 128 MB 38775 17920 13458 47.319% 문제 RGB거리에 사는 사람들은 집을 빨강.. 2020. 1. 22.
9095 1,2,3 더하기 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 1, 2, 3 더하기성공 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 38192 24218 162.. 2020. 1. 20.
11726 2xn타일링 문제 : https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2×n 타일링 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 50425 18576 13730 34.660% 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는.. 2020. 1. 20.
17413 단어 뒤집기2 - C 단어 뒤집기 2 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 512 MB 1037 506 397 49.874% 문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, '') Is_gal = false; i++; } while (!s.empty()) { printf("%c", s.top()); s.pop(); } return 0; } 2020. 1. 14.
1874 스택수열 - C,C++14 스택 수열 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 28735 8424 6252 30.523% 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop .. 2020. 1. 14.
4949 균형잡힌 세상 균형잡힌 세상 성공 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이룰 수 있다. 모든 왼쪽 대괄호("[")는 오른쪽 대 www.acmicpc.net 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 6554 2209 1854 34.44.. 2020. 1. 9.
10773 제로 제로 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 6225 4171 3697 68.833% 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" .. 2020. 1. 8.
9012 괄호 괄호 성공 시간제한 메모리 제한 제출 답 맞은 사람 정답 비율 1 초 128 MB 51006 20355 14745 39.011% 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 .. 2020. 1. 8.
10845 큐 큐 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.5 초 (추가 시간 없음) 256 MB 33134 15363 11950 49.519% 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력.. 2020. 1. 8.
9093 단어 뒤집기 문제장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다. 예제 입력 1 2 I am happy today We want to win the first prize 예제 출력 1 I ma yppah yadot eW tnaw ot niw eht tsrif ezirp 출처 ICPC > Regionals > A.. 2020. 1. 7.
10828 스택 스택 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 0.5 초 (추가 시간 없음) 256 MB 57572 22011 16136 40.290% 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N .. 2020. 1. 6.
ONVIF와 영상 데이터 스트리밍 프로토콜 이더넷 카메라를 개발하기 위해 하드웨어단의 구성을 마치고 영상 데이터 전송 Viewer를 개발하고자 알아보던중 ONVIF를 알게되어 정리해보았다. ONVIF는 (Open Network Video Interface Forum) 오픈 네트워크 비디오 인터페이스 포럼의 약자로 보안 목적의 물리적인 IP기반 제품 (쉽게 생각할수 있는 CCTP IP카메라)들의 인터페이스를 위해 세계 개방형 표준의 개발 및 이용을 용이하게 하는것을 목적으로 만든 비영리 조직단체이다. 초기 설립의 기업은 엑시스 커뮤니케이션, 보쉬 시큐리티 시스템, 소니 가 시작했다. ONVIF 사양에서 ONVIF 프로파일이란게 있는데, 이것은 특정 기능의 상호 운용을 보장하는 기술적인 사양을 말해준다. 언급된 프로파일은 아래와 같다. 프로파일 G .. 2019. 10. 8.
이더넷(Ethernet) 이더넷(Ethernet)이라는 '명칭'은 빛의 매질로 여겨졌던 에테르(ether)에서 유래되었습니다. LAN 구간 에서 사용되는 네트워킹 방식 중 하나이구요. 대다수 우리가 쓰는 네트워크 방식의 90%는 Ethernet(기타 : ATM,FDDI,AppleTalk(맥),토큰링 등) 방식이라 보면됩니다. IEEE802.3 표준 발표(CSMA/CD) ※ CSMA/CD 란 (Carrcarrier Sense Multiple Access with Collision Detection) - 요약하자면, 대충 알아서 눈치껏 통신하자 이다. 이 말의 상세를 좀 살펴보면, 이더넷 환경에서 통신을 하고 싶은 PC나 서버는 먼저 지금 네트워크 상에 통신이 일어나고 있는지 확인을 합니다. 즉, 네트워크 자원을 쓰고 있는 PC나 .. 2019. 10. 2.
[STM32F429]Timer Basic 타이머 기초 - 동아리 학생들 세미나용 2019. 9. 4.
STM32f429 CubeMX , IAR Compiler, (GPIO,EXIT) 동아리 학생들 세미나용 2019. 9. 4.
stm32f429 Datasheet (SDRAM, ILI9341, HAL, Ref,Programming 메뉴얼, DMA컨트롤러 ) ILI9341 TFT_LCD chipDriver (240x320 RGB) - https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf SDRAM - IS42s16400J.pdf - http://www.issi.com/WW/pdf/42-45S16400J.pdf HAL_Manual (LL포함) - UM1725 - https://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf PM0214 - 프로그래밍 메뉴얼 - https://.. 2019. 9. 4.
[STM32F429]DMA와 GPIO를 활용한 고속 병렬 통신 Cube 설정 속도 테스트 8bit 병렬사용시 SDIO내 65kbyte 전송 결과 2019. 9. 4.
[STM32F429]FMC(Flexible Memory controller) 구성 및 설정(cube) //초기화 순서 CuBeMx 설정 우측 데이터시트를 보고 레이턴시 설정 결과 테스트 2019. 9. 4.
단일 리스트로 스택 구현하기 -Stack- C 언어 1. LinkedListstack.h 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 1.. 2019. 6. 5.
이중 연결 리스트 -Double Linked List(2) (삭제, 삽입, 생성,추가) - 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 Node* CreateNode(int NewData) { Node* NewNode = (Node*)malloc(sizeof(Node)); NewNode->Data = NewData; NewNode->Next = NULL; NewNode->Pre = NULL; return NewNode; .. 2019. 6. 3.
단일 연결 리스트 -Linked List(2) (노드탐색, 삭제, 삽입) - C 언어 단일 연결 리스트의 노드 탐색은 한계점이 많다. 탐색 방향이 일편적이고, 순차적으로 노드의 수를 세어나가서 원하는 요소에 접근해야 한다는 점이 있다. 1. 노드 탐색 1 2 3 4 5 6 7 8 9 10 11 12 Node* search_Node(Node* Head, unsigned short SearchValue, unsigned short *search_count) { Node* Current = Head; while (Current->Data != SearchValue) { Current = Current->Next; (*search_count)++; } return Current; } 2. 노드 탐색 실행 결과 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 .. 2019. 4. 10.
단일 연결 리스트 -Linked List(1) (노드생성, 삭제, 추가) - C 언어 단일연결리스트는 크기를 가변적으로 만들 수 있다는 장점이 있다. 예를들어 파일 목록을 가져 오려하는데 어떤 임의의 디렉토리에서 파일이 몇개 있는지 알 수 없을때. 고정적인 배열을 사용하여 가져오기에는 한계가 있다. char* FileList[20]; 이라고 선언해놓고 파일이 20개이상이 되면 불러오지 못한다거나, char* FileList[65535]; 라고 선언해놓고 파일목록이 이 숫자에 미치지 못한다면 메모리가 아까울 뿐이다. 이런 경우 정적인 배열말고 동적인 1차원 리스트를 생성할 수 있는데 단점은 효율이 안좋으므로 다른걸 씁시다. 그래도 알아두면 이중연결리스트를 기반으로 이진트리나,다른 기타 자료구조나 알고리즘과 C언어의 포인터를 이해하는데 조금은 도움이 되기 때문이다. 1 2 3 4 5 type.. 2019. 4. 7.
VisualStudio 내부 스택 크기 조절방법 프로젝트 속성 - 구성 속성 - 링커 - 시스템 스택 예약 크기 및 조절. 2019. 4. 6.
[MFC] 문자열 변환 매크로 및 사용 주의사항 CString 을 char*나 char*를 CString으로 변환시 W2A A2W 혹은 _T(" ") 매크로를 사용하여 변환하는경우 스택오버플로우가 발생하는 문제점을 직면했다. 반복문내에서 여러번 변환과정할때 내부 스택을 사용하기 때문에, 반복적으로 사용하면 스택오버플로우가 발생함. ATL7.0부터 도입된 CW2A와 CA2W는 위의 문제를 피할 수 있다. 단, 내부 버퍼의 일정 크기를 넘어서면 힙에 메모리를 할당하게 된다. 따라서, 스택 오버플로우로 인한 프로그램이 죽는현상을 방지할 수 있다. ex) char* -> CString 으로 변환 ex) CString -> char*로 변환 ex 0611_추가) UTF_8 문자열 집합 인코딩 변환 하는법 참조 : https://docs.microsoft.com.. 2019. 4. 6.
728x90