본문 바로가기

728x90

분류 전체보기

[백준] 10814번 : 나이순 정렬 - C/C++ 내가 생각한 문제 해결 순서는 아래와 같다. 1. 회원수 n 입력하기2. 회원의 나이와 이름 입력하기3. 나이순으로 출력하기 문제는 간단했는데이걸 2차원배열로 입력으로 받아버리면.. 시간 초과가 뜰 것 같았다. 그래서 방법을 생각하다가얼마전 알고리즘 강의에서 배운 pair 를 사용해보기로 했다. pair 선언은 아래처럼 할 수 있다.vector> vector; -pair??pair 가 기본 구조이다.특징은 아래와 같다. 저장한 값은 .first 그리고 .second로 접근할 수 있다.2개의 값을 순서쌍 형태로 저장할 수 있다.정렬에 용이하게 사용된다. 우리는 입력 받은 n 만큼의 쌍을 입력 받아야하니까for 문을 돌려준다.for (int i = 0; i > num >> str; vector.empl.. 더보기
[백준] 2947번 : 나무 조각 - C/C++ 문제를 읽고 어떻게 접근해야할지 생각했는데생각보다 간단했다. 입력을 받고, 첫 번째와 두 번째 수를 비교하고 그 다음 수를 비교하고..근데 문제가 생겼다. 동작이 잘 될 줄 알고if문으로 구현했는데 한 번씩만 인접한 배열을 비교하는 것이었다. 결국 출력은 아래처럼.. 나오게 된다.틀렸다는 뜻. 간단하다고 말했던 걸 후회한다.나는 풀이과정을 다시 생각해야했다.. 많은 고민을 하다가 if문이 아닌 다른 방법이 있을까.. 했는데bubble sort(버블 정렬)이 생각났다. 버블 정렬로 풀어보자.버블 정렬의 핵심은 다음과 같다. 버블 정렬은 인접한 두 개의 원소를 비교하여, 마지막 원소까지 늘려가며 정렬하는 알고리즘이다. 알고리즘은 아래의 4단계를 거쳐 실행된다. 1. 첫 번째 원소와 두 번째 원소 비교2. 첫.. 더보기
[백준] 10817번 : 세 수 - C/C++ 문제를 보자마자 어떻게 풀어야할지 생각이 딱 난다면,,,그건 구현 문제일 가능성이 크다.(정말 개인적인 생각) 문제에서 말하는 대로 따라가면 지난번 글과 같이 쉽게 해결 가능하다. 두 가지 방식으로 위의 문제는 해결 가능하다. 1. int형으로 정수 A,B,C 입력 받아서 비교하기2. int형의 배열에 값 입력받아서 정렬 후 비교하기 다른 방법이 있을 수 있겠다만 나는 두 가지 밖에 생각이 안 났다.  문제에서 두 번째로 큰 정수를 출력하라고 했다.1번 방식으로 풀게 되면 if문을 사용해서 수를 직접 비교해야겠지만,2번 방식으로 풀게 되면 정렬해서 풀 수 있다. 나는 복잡한 건 싫다.내장함수를 최대한 활용하겠다.2번 방식으로 풀어보자. 배열에 값 입력하기int ary[3]; for(int i=0;i.. 더보기
[백준] 2744번 : 대소문자 바꾸기 - C/C++ 여러가지 상황이 복잡하게 섞여있는 문제가 아니라 그냥 구현만 하면 되는 문제.머릿속에서 '이렇게 하면 되겠다' 라는 생각이 바로 떠올랐다.바로 떠오를 것도 없다.문제를 따라가면 되니까..  순서는 다음과 같다.1. 배열로 문자열 입력 받기2. 소문자 대문자 전환해주기3. 결과 출력    문제에서 단어 길이는 최대 100이라고 했으니, 아래처럼 설정해주자.char st[101];cin >> st;입력도 받았다면, 검증하기.  지난 글에서도 다루었지만, 알파벳은 아스키(ASCII) 코드로 저장된다.특정 알파벳은 특정 숫자와 매칭된다는 것이다.대문자와 소문자는 정확히 32라는 차이가 난다.코드로 구현해보자.for(int i=0;i= 'A' && st[i] = 'a' && st[i]   이런.. 너무나 쉽게 .. 더보기
[백준] 2693번 : N번째 큰 수 - C/C++ 문제를 읽고 해결 과정을 순차적으로 생각해 보았다. 1. 입력받고자하는 테스트 케이스 N 입력2. 크기가 10인 배열 선언3. 반복문을 돌면서 배열에 값 넣기4. 오름차순 혹은 내림차순으로 정렬5. 결과 출력    문제 풀이 시작.테스트 케이스 입력과 크기 10인 배열 선언고정된 크기의 배열 aryint n;int ary[10];  반복문을 돌며 배열에 값은 입력하면 아래와 같다.for(int i=0;i> ary[j]; }}  배열에 값을 입력했으니, 정렬을 해야한다.정렬은 sort( , , ) 를 통해 구현할 수 있으며,c++에서의 sort는 quick sort(퀵 정렬)로 설정되어있다.#include ...sort(ary,ary+10); 기본이 오름차순이기 때문에 우리는 출력할 때 주의해야한다... 더보기
[백준] 2577번 : 숫자의 개수 - C/C++ 문제를 보고 어떻게 풀까, 고민을 했다.해결 과정은 아래와 같다. 1. int 형으로 A,B,C 3개의 수를 입력 받기2. 세 수의 곱셈 연산 수행3. 결과 값을 string으로 바꾸기4. 배열을 순회하며 숫자 개수 세기5. 결과 출력  내가 마주한 고비는 연산한 Int형 정수를 어떻게 string으로 바꾸어야 하는지부터 시작했다. 근데 진짜 쉽다.을 include 해주고, 원하는 값을 to_string(); 안에 넣어주기만 하면 된다.#include ...int main(){ int a,b,c; cin >> a >> b >> c; int mul; mul = a*b*c; string mulStr = to_string(mul);...} 그럼 다음 순서.배열을 순회하며 0이 몇 번, 1부터 9까지 각.. 더보기
[AI] AI 모델 (PointNet, VoteNet, PointRCNN, YOLO) AI 모델에는 제목에서 알 수 있듯이 다양한 종류가 존재한다.  먼저 PointNet이다. PointNet은 input으로 Point cloud를 직접적으로 다룬 딥러닝 모델이다. 여기서 말하고 있는 포인트 클라우드 개념은 지난 글에서 다루었으니, 링크로 달아두겠습니다.https://binaryroot.tistory.com/2 [AI] 자율주행부터 스마트시티까지 AI와 라이다포인트 클라우드 데이터와 AI AI와 LiDAR를 결합해 최신 기술 트렌드를 공부하고 응용을 목표로 두고 공부를 시작한다. LiDAR 센서의 원리LiDAR(라이다) = Light Detection and Ranging레이저를 사용해서 사물binaryroot.tistory.com PointNet은 위와 같은 구조로 되어있다. Point.. 더보기
[AI] 자율주행부터 스마트시티까지 AI와 라이다 포인트 클라우드 데이터와 AI AI와 LiDAR를 결합해 최신 기술 트렌드를 공부하고 응용을 목표로 두고 공부를 시작한다. LiDAR 센서의 원리LiDAR(라이다) = Light Detection and Ranging레이저를 사용해서 사물과의 거리를 감지하는 장치 라이다 센서는 레이저를 통해 얻은 공간 정보를 3차원 공간에서 점들로 나타내어, 주변 환경을 정확하게 파악할 수 있도록 해줍니다. LiDAR에서 레이저는 광원(송신기)에서 보내지고 물체에서 반사되는데,  반사광은 시스템 수신기에 의해 감지되고 비행시간 (TOF)은 물체의 거리 지도를 개발하는 데 사용됩니다.LiDAR는 자율 주행 차량의 거리 감지를 위한 핵심 방법으로 자주 인용되는 광학 기술인데요, LiDAR 시스템은 이미 ADAS (Advan.. 더보기

728x90