# C

[정보처리기사 실기] 기출문제 풀어보기 - C
다른 블로그에서 정리해준 실기 기출문제를 풀어보자 기출문제 출처 20년 1회 14번 switch문에서 break가 없으면 default까지 쭉쭉 실행 20년 1회 20번 align() : 버블 정렬 코드 main에서 실행 후 a[0]부터 a[4]까지 출력 20년 3회 10번 넘쉬워서 딱히 할말이.. 200+30+4 20년 4회 10번 char * : 문자열 포인터, 문자열을 배열로 저장 를 기준으로 이분탐색 left =0, right = 전체 돌 중 최대 무게 mid 계산해서 현재 mid 인원으로 무사히 완주할 수 있는지 검사 ➡️ mid 보다 돌의 무게가 작을 경우, 그 돌은 건널 수 없기 때문에 모든 돌을 탐색하면서 연속으로 k번 건널 수 없으면 현재 mid 로 완주할 수 없다는 것이므로 false 반환 ❗️ 연속으로 k번 건널 수 있는지 확인해야하기 때문에 건널 수 있는 돌이 등장하는 순간 cnt 를 0으로 갱신해주는 것이 관건 현재 mid 로 건널 수 있으면 mid 를 늘리기 전에 answer 에 mid 갱신 ➡️ 최대값 탐색시 이때 갱신하는 것은 종특 📌 self feedback 완전탐색으로 풀이했지만,,역시 효율성에서 나락감 이분탐색의 실마
택배 배달과 수거하기
택배 배달과 수거 처음 봤을 때 그리디 알고리즘을 쓰는 것 같아서 끙끙 됐던 문제 제일 끝까지 이동한 후, 끝에서 부터 배달과 수거를 더해준뒤, 뺄 수 있는 만큼 cap을 빼주고, 이동한 횟수를 더해주었던 것으로 기억한다. 코드

[C언어] 파일 입출력
파일 입출력은 양날의 검. 예를 들면 게임에서 현재의 데이터를 저장하고 다시 불러오거나 할 수 있음. 또한 프로그램 전반에 사용되는 다양한 데이터를 처리하고 저장하여 보관할 수 있다는 점에서 유용 but 상대방의 파일을 강제로 읽어오거나 변경할 수도 있다는 점! 예제#1 *이때까지 파일의 위치를 잘못 설정했었음. 파일의 위치는 코드와 동일한 폴더가 아닌 이전 디렉토리에 저장해야지 실행됨... 도대체 왜...? 예제#2 예제#3 실행결과 해당 텍스트 파일에 저장되 있는 단어는 Hello man Hello women Hello 라고 가정했을시 줄단위로 문장을 읽고 탐색한 데이터의 결과를 출력함.

컴퓨터 그래픽스
1. c를 이용한 opengl 다루기 > #### opengl을 사용하기 위한 기본 setting 하기 visual studio project를 생성해 solution을 생성한다. 솔루션 탐색기에서 project를 우클릭해 프로젝트의 속성을 바꿔야한다. 일반 -> 출력 디렉터리 -> $(SolutionDir)\bin\x64\ 생성되는 exe 파일은 freeglut.dll과 같은 폴더에 있어야 하기 때문에 링커 -> 일반 -> 추가 라이브러리 디렉터리 -> .\lib\x64 freeglut.lib 를 사용하기 위해 링커 -> 입력 -> 추가 종속성 -> freeglut.lib; 맨 앞에 추가 freeglut.lib 를 사용하기 위해 제일 중요한 freeglut 폴더를 생성된 프로젝트 폴더로 복사해야한다!!!  ###객체 배열 선언 객체 배열을 위한 공간 할당 배열의 각 원소 객체마다 생성자 실행 c[0]의 생성자, c[1]의 생성자, c[2]의 생성자 실행 매개 변수 없는 생성자 호출 (매개변수 있는 생성자 호출 불가 -> 오류 발생 ) 객체 배열 초기화 배열의 각 원소 객체당 생성자 지정 ###배열 소멸 배열의 각 객체마다 소멸자 호출 생성의 반대순으로 소멸 c[2]의 생성자, c[1]의 생성자, c[0]의 소멸자 실행 ###Circle 클래스의 배열 예시 Circle *pCircle = new Circle();delete pCircle; 클래스이름 *포인터변수 = new 클래스이름(생성

[TIL] Unity - Sprite - Day 54
🐧 들어가기 앞서 타워를 스프라이트로 하느냐, 이미지로 하느냐 각자의 장점이 있지만, 스프라이트로 하기로 결정하고 이미지로 했던 모든 작업을 날리고 다시 만들었다. 🐧 오늘 배운 것 제네릭 🐧 기억할 것 & 진행 타워 스폰매니저를 만들었다. 🐧 게임에 구현한다면? 스폰 위치와 타워, 도트 모두 프리팹으로 구현해서 코드로 관리했다. 이미지를 활성화하고 비활성화하는데 굉장히 작업이 번거로웠고 슬롯 자체를 만들다보니 조금 활성화 하는 부분이 까다로웠다. 스폰 포인트를 만들고, 해당 위치에 프리팹을 생성하도록 만들었다. 좋은 점은 원하는 위치에 스폰을 할 수 있게 관리가 가능하다는 점! 🐧 내일 할 일 머지 기능 만들기

C# - Split 함수
Split Split은 C# 문자열 메서드 중 하나 Split 함수는 문자열을 분리시켜주는 기능 .Split메서드의 반환형은 string[] 예시_01 위 코드를 실행하면, -이 -함수는 -스플릿 -입니다. 로 분리가 됩니다. 공백(' ')을 기준으로 나누었기 때문 예시_02 위 코드를 실행하면, -이렇게 -띄고라는 -스트링형을 -사용해도 -가능합니다. 로 [띄고]를 기준으로 분리가 됩니다.

BFS, Flood Fill(플러드 필) 알고리즘이란 무엇이고, 어떻게 사용하는걸까?
학습배경 최근 알고리즘 한 문제를 풀어보며 느낀점은, 지식이 완전히 체화되지 않았다는 느낌을 받았습니다. 주변 사람들이 쉽다는 문제를 정말 오랜시간이 걸려서 겨우 풀었기때문에, 이 느낌을 강하게 받았습니다. 이번 기회에 알고리즘에 대해 확실히 정리하고 오랫동안 기억해보고자 합니다. 해결했던 문제를 저만의 새로운 문제로 창작해보며, 만든 문제를 기반으로 개념을 쉽게 풀어쓰며 설명하도록 하겠습니다. 새롭게 만들어본 문제 현 문제는 백준 온라인 저지의 1697번 : 숨바꼭질 를 풀이하고, 저만의 새로운 아이디어로 만든 문제입니다. 숨바꼭질 문제를 보면 대략 감을 잡았겠지만, 이 문제는 자동차가 주유소를 찾아서 주유하

C++을 이용한 OpenCV(3)
연결된 카메라 확인 연결된 카메라 영상연결 연결된 카메라를 통한 녹화 진행 선 그리기 도형 그리기 텍스트 삽입 키보드 입력에 대한 이벤트 (종료) 마우스에 입력에 대한 이벤트 마우스를 따라 이벤트 출력 이미지 상단에 Trackbar 생성 Trackbar 와 연동해서 레벨에 따라 바뀌도록 함 특정 영역의 색을 바꿈 OpenCV를 통한 이미지 합성 실행 소요 시간 측정 min & max 함수

4주차/09.27
몇 가지 대표적인 언어의 함수들을 설명해드리겠습니다. Python: print(): 지정된 값을 출력합니다. len(): 문자열, 리스트, 튜플 등의 길이를 반환합니다. range(): 정수 범위를 생성합니다. input(): 사용자로부터 입력을 받습니다. str(), int(), float(): 데이터 타입 변환을 수행합니다. JavaScript: console.log(): 지정된 값을 콘솔에 출력합니다. document.getElementById(): HTML 요소를 가져옵니다. Array.prototype.map(): 배열의 각 요소에 함수를 적용하여 새로운 배열을 생성합니다. setTimeout() 및 setInterval(): 일정 시간 후 또는 주기적으로 함수를 실행합니다. Java: `System.out.print
[백준 C++] 3055 탈출
문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나타내어져 있다. 매 분마다 고슴도치는 현재 있는 칸과 인접한 네 칸 중 하나로 이동할 수 있다. (위, 아래, 오른쪽, 왼쪽) 물도 매 분마다 비어있는 칸으로 확장한다. 물이 있는 칸과 인접해있는 비어있는 칸(적어도 한 변을 공유)은 물이 차게 된다. 물과 고슴도치는 돌을 통과할 수 없다. 또, 고슴도치는 물로 차있는 구역으로 이동할 수 없고, 물도 비버의 소굴로 이동할 수 없다. 티떱숲의 지도가 주어졌을 때, 고슴도치가
[C++] 03-1. 클래스와 객체
1. 객체에 대한 이해 객체는 캡슐화된다. 캡슐화(encapsulation) : 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것 객체의 일부 요소는 공개된다. 객체들이 서로 정보를 교환하고 통신하기 위함 C++ 객체는 멤버 함수와 멤버 변수로 구성된다. 멤버 변수 : 객체의 상태(state)를 나타내는 속성들 멤버 함수 : 행동(behaviour)을 구현한 코드들 외부에서 C++ 객체에게 어떤 작업을 요청하거나 상태를 알고자 할 때, 객체 내에 공개된 멤버 함수를 호출 C++ 클래스와 C++ 객체 C++ 클래스(class) : 객체(object)를 정의하는 틀 혹은 설계도, 클래스에서 멤버 변수와 멤버 함수를 선언함 C++ 객체 : 멤버 변수 메모리와 멤버 함수 코드를 실제 가지고 C++ 프로그램이 실행되는 동안 실존하는 실체 혹은

C++ OpenSSL 라이브러리 사용
Introduce Library 이 세계에서는 수 많은 개발자가 존재하며 그들이 협업하여 소프트웨어를 만든다. 그 중 하나의 수단은 라이브러리를 제작하여 배포하는 것이고 그것을 활용하는 것이다. Python이나 Node는 pip나 npm등의 패키지 매니저를 이용하여 다른 개발자들이 제작한 라이브러리(혹은 모듈)를 쉽게 설치하고 사용할 수 있다. 그러나 이 세상에선 Python이나 Node로만 프로그래밍하지 않는다. 가령 Microsoft Windows라는 거대한 소프트웨어를 생각하자. 이는 거의 C, C++ 및 hard-coded assembly 언어로 개발되었다. 마이크로소프트 사내에서 수 많은 라이브러리가 이를 위해 제작되었고 활용되었을 것이다. C 언어 계통의 언어로 말이다. C/C++ C/C++는 많은 사람들이 어려워 한다. 사람들에게 익숙한 Python, Java, Javascript와 같은 언어들은 언어 자체에서 많은 기능을 자체 제공해주며
Merge K Sorted Lists
Intuition 이미 정렬되어 있는 배열을 합쳐서 다시 정렬시킨다는 상황자체가 Merge Sort의 후반부 과정과 유사한 상황이다. 그러나 코드를 조금 더 직관적으로 작성하기 위해 두 개씩 배열을 비교하는 병합 정렬과 달리, 한번에 모든 배열을 비교하는 방식을 채택하기로 했다. Approach Merge Sort의 경우 두 개의 배열에 각각 포인터를 두고 값을 비교하며 더 작은 것을 새로운 정답 list에 담는다. 이후 작은 것이 나왔던 배열의 포인터를 뒤로 물러준다. <img src="https://upload.wikimedia.org/wikipedia/commons/c/cc/Merge-sort-example-300px.gif" alt="Merge-so

23-09-26TIL 자료형과 컴퓨터 동작이해
오늘은 c++에서의 자료형과 우리가 작성하는 코드들을 컴퓨터가 어떻게 이해하고 동작하게 되는지에 대해 말해볼까 합니다. 자료형 정수 char -128 ~ 127 1바이트 short int 약 -3만 ~ 3만 2바이트 int 약 -21억 ~ 21억 4바이트 long long 8바이트 이렇게 크기별로 자료형이 구분되는 이유 메모리 절약 ex) 최대 레벨이 300이고 300보다 더 늘어 날 일이 없다는게 확실하다면 4바이트 이상의 자료형을 써서 굳이 메모리를 낭비해가며 쓸 필요가 없음 연산 효율성 ex) 부동 소수점에서의 연산은 더욱 복잡한 연산을 수행하기때문에 구분을 해줘서 효율성을 높임 자세한 자료형은 링크 참조 c++ 자료형 컴퓨터 동작 
[TIL] Unity - Random Dice - day 53
🐧 들어가기 앞서 랜덤 다이스의 다이스를 만드는게 이렇게 어려울지,,, 세상에 똥겜은 없다. 모든 게임 개발자에게 존경을,,, 🐧 오늘 배운 것 다이스 타워의 정보를 만들었고, 다이스 타워를 생성하는 부분까지 제작했다. 💗 클래스 다이어그램 우선 타워의 클래스 다이어그램이다. 🐧 기억할 것 & 진행 1. Scriptable Object 타워 정보 구현 이렇게 진행하면, 타워의 정보를 생성할 수 있다. 2. Tower 구현 타워의 속성에 따라 색상이
[백준 C++] 5014 스타트링크
문제 강호는 코딩 교육을 하는 스타트업 스타트링크에 지원했다. 오늘은 강호의 면접날이다. 하지만, 늦잠을 잔 강호는 스타트링크가 있는 건물에 늦게 도착하고 말았다. 스타트링크는 총 F층으로 이루어진 고층 건물에 사무실이 있고, 스타트링크가 있는 곳의 위치는 G층이다. 강호가 지금 있는 곳은 S층이고, 이제 엘리베이터를 타고 G층으로 이동하려고 한다. 보통 엘리베이터에는 어떤 층으로 이동할 수 있는 버튼이 있지만, 강호가 탄 엘리베이터는 버튼이 2개밖에 없다. U버튼은 위로 U층을 가는 버튼, D버튼은 아래로 D층을 가는 버튼이다. (만약, U층 위, 또는 D층 아래에 해당하는 층이 없을 때는, 엘리베이터는 움직이지 않는다) 강호가 G층에 도착하려면, 버튼을 적어도 몇 번 눌러야 하는지 구하는 프로그램을 작성하시오. 만약, 엘리베이터를 이용해서 G층에 갈 수 없다면, "use the stairs"를 출력한다. 입력 첫째 줄에 F, S, G, U, D가 주어진다. (1
[백준 C++] 13549 숨바꼭질3
문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. https://www.acmicpc.net/problem/13549 풀이 시간적 여유가 충분하고 대신 메모리여유가 적을때는 최단조건을 찾기위해 우선순위큐를 사용하면 편리하다. 이 문제를 queue로 풀었을때는 2*X로 이
C++ 자료형
Arithmetic Types | Type | Bytes | Range | Fixed-width types | |-------------------------|-------|-------------------------------|------------------------| | bool | 1 | true, false | | | char | 1 | implementation defined | | | signed char | 1 | -128 to 127 | int8_t | | unsigned ch