본문 바로가기
728x90

전체 글246

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.
[MFC] CFileDialog 클래스 1 2 3 4 5 6 7 8 9 explicit CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL, DWORD dwSize = 0, BOOL bVistaStyle = TRUE); 1. 매개 변수 - bOpenFileDialog : TRUE(파일 열기 대화상자) , FALSE : 다른 이름으로 저장 대화상자. - lpszDefExt : 기본 파일 이름 확장명 - lpszFileName : 파일 이름 상자에 .. 2019. 4. 6.
[MFC] csv파일 경로를 ListControl에 채우기 1. MFC 기본 컨트롤러 배치 (Button, ListControl) MFCL 기본컨트롤 ListControl과 Button(버튼)을 추가해줍니다. 2. 두 컨트롤에 대해 변수 추가 해당 컨트롤을 우클릭하여 변수를 추가해줍니다. 리스트 컨트롤의 변수이름은 ListController로 해줍니다. 이름은 편하게 지으시면 됩니다. 사진은 없지만 버튼도 똑같이 해주면됩니다. 3. ListControll의 속성을 변경해줍니다. 여기까지 했으면 아래와 같이 보입니다. 버튼 캡션이름은 ReadFile로 했습니다. 안바꾸셔도 됩니다. 코드 작성이전에 해당 변수들이 잘 만들어졌는지 확인합니다. 클래스명 변수이름; ex) CButton(클래스명) ReadFile(변수이름); 4. OnInitDialog()로가셔서 Lis.. 2019. 4. 6.
ARM을 이용한 카메라보드 뒤에 선이 복잡하여 노이즈와 탈 부착 편의성을 개선하기 위해 소켓용 PCB 보드를 제작하여 주문했다. 처음엔 회로도 라이브러리와 3d 풋프린트를 만들었다. 두번째로 회로도와 심볼라벨을 배치하고, 만든 라이브러리를 적용시켰다. 거버파일까지 생성해줘서. 한백전자에 일주일전에 요청을하고 어제 받았다 짠!(아침 6시까지 삽질하게 될줄은 이때까지만 해도 몰랐다...) 그리고 옆에 핀 소켓들과 테스트를 해봤다. PF4 PE8번핀에 high를 걸었다. 불이 들어온다. 사이즈 완벽! 1차는 이렇게 실패로 끝나고. 첫 오류 수정사항을 정리해봤다.LCD PIN PC11 -> PE7 으로 변경해야함. PE7 -> PE9로 변경해야함.실크레이아웃으로 핀 위치 지정해놓을것 (시간을 줄일 수 있음)배치문제해결하기 (LCD,카메라.. 2018. 10. 14.
[Level1]소수의 합(에라토스테네스의 체) [연습문제] C/C++ 소수 찾기1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.)제한 조건n은 2이상 1000000이하의 자연수입니다.입출력 예nresult10453입출력 예 설명입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환#define TRUE 1 #define FALSE 0 #include #include using namespace std; int solution(int n) { int answer = 0, Prime_count = 0; int isPrime = TR.. 2018. 10. 2.
[Level1] 두 정수 사이의 합 [연습문제] C/C++ 두 정수 사이의 합두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.제한 조건a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.a와 b의 대소관계는 정해져있지 않습니다.입출력 예abreturn35123335312 풀이1)#include #include using namespace std; long long solution(int a, int b) { long long answer = 0; int step =0, temp = 0; step = (a - b); if (ste.. 2018. 10. 1.
[STM32F429]FSMC(LCD INTERFACE), DCMI 보충내용 2018. 10. 1.
[STM32F429]DCMI(Digital camera interface)와 OV7670 CAMERA-(2) 코드(CAMERA) CAMERA.h #define WRITE_SLAVE_ADDR 0x42 #define READ_SLAVE_ADDR 0x43 #define DEVICE_REG_NUM 140 //121 #define I2C_DIR_TR 0x00000001U #define QVGA_RESOLUTION (320*240) void SCCB_write_reg(uint8_t reg_addr, uint8_t data); void CAMERA_Init(void); int SCCB_read_reg(uint8_t reg_addr); void ov7670_capture_snapthot(); CAMERA.c #include "stm32f4xx.h" #include "stm32f4xx_hal.h" #include "stm32f4xx_hal_dcm.. 2018. 9. 21.
[Level1] 문자열 내림차순으로 배치하기 [연습문제] C/C++ 문자열 내림차순으로 배치하기문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.제한 사항str은 길이 1 이상인 문자열입니다.입출력 예sreturnZbcdefggfedcbZ 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 #define MAX_SIZE 7 #include #include #include using namespace std; string solution(string s) { string get_string; get_string.. 2018. 9. 20.
[Level1] 문자열 내 마음대로 정렬하기[연습문제] C/C++ 문자열 내 마음대로 정렬하기문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다.제한 조건strings는 길이 1 이상, 50이하인 배열입니다.strings의 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 원소는 길이 1 이상, 100이하인 문자열입니다.모든 strings의 원소의 길이는 n보다 큽니다.인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.입출력 예stringsnreturn[sun, bed, car]1[car, be.. 2018. 9. 20.
728x90