Lucky Charms Rainbow > '분류 전체보기' 카테고리의 글 목록 (4 Page) — Hoon's Blog

분류 전체보기

    [백준]1541번 - 잃어버린 괄호 c++

    [백준]1541번 - 잃어버린 괄호 c++

    문제 설명 그리디 알고리즘 문제 입력값이 모두 붙어있기 때문에 string으로 입력 받은 후 숫자를 떼어내 따로 저장시켜줘야 합니다. 입력된 스트링에서 숫자 분리 과정 1. string변수 number에 넣으면서 -, +, 입력받은 문자열의 마지막 문자가 나온다면 이때까지 number에 추가된 문자열을 2. stoi()함수를 통해 int형으로 변환 후 정수형 벡터에 저장시켜줍니다. 3.괄호작업 후 결과값 출력 핵심 1. string은 char, char[]와 달리 끝에 null이 붙지않음 2. string s 초기화: s.clear() 3. string은 stoi 함수를 통해 (string -> int) 변환을 해주어야 함 코드 #include #include #include int main() { st..

    클래스와 객체

    클래스와 객체

    객체는 캡슐화 캡슐화(encapsulation)란? 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징입니다. 보통 붕어빵을 예시로 많이 듭니다. C++에서의 객체는 멤버 변수와 멤버 함수로 구성 됩니다. 멤버 변수들은 객체의 상태(state)를 나타내는 속성들이며, 멤버 함수들은 행동(behavior)을 구현한 코드들입니다. 외부에서 C++ 객체에게 어떤 작업을 요청하거나 상태를 알고자 할 때, 객체 내에 공개된 멤버 함수를 호출합니다. 클래스는 객체를 정의하는 설계도 붕어빵 예시처럼 C++ 객체는 C++ 클래스라는 틀에서 찍어내어, 멤버 변수 메모리와 멤버 함수 코드를 실제 가지고 C++프로그램이 실행되는 동안 실존하는 실체 혹은 인스턴스(isntance)..

    16928번 - 뱀과 사다리 게임 c++

    16928번 - 뱀과 사다리 게임 c++

    문제설명 1번칸 -> 100번칸을 도달하기까지의 주사위 돌리는 횟수의 최소값을 구하는 문제 다른 대표적인 그래프탐색 문제처럼 상하좌우로 이동하는 것이 아닌, (+1, +2, +3, +4, +5, +6)로만 이동하는 것이기에 1차원 배열을 사용 이 문제에서 가장 중요한 포인트이자, 저를 포함한 많은 분들이 간과했던 문제는 뱀과 사다리가 있는 칸에 주사위 이동으로 갈지 vs 뱀/사다리를 탈지 선택하면 안되는 것 뱀을 타는 것이 더 빠른 경우 1번은 탐색하면서 뱀과 사다리가 있는 칸에 도착한다면 선택의 여지없이 뱀이나 사다리를 무조건 타서 이동시켜야 합니다. if(ladder_snake[next_x] > 0 && ladder_snake[next_x] < next_x) next_x = ladder_snake[n..

    합성곱/풀링 계층 구현하기

    합성곱/풀링 계층 구현하기

    numpy에 for문을 사용하면 성능이 떨어지는 단점이 있습니다.(numpy에서는 원소에 접근할 때 for문을 사용하지 않는 것이 바람직합니다.) for문을 대신하여 im2col 함수를 이용합니다. im2col 함수를 이용한 합공곱 계층의 구현 흐름im2col 함수는 필터링하기 좋게 입력 데이터를 전개합니다.3차원 입력 데이터에 im2col을 적용하면 2차원 행렬로 바뀝니다.정확히는, 배치 안의 데이터 수까지 포함한 4차원 데이터를 2차원으로 변환합니다. 위 그림은 스트라이드를 크게 필터의 적용 영역이 겹치지 않도록 했지만, 실제 상황에서는 영역이 겹치는 경우가 대부분입니다.필터 적용 영역이 겹치게 되면 im2col로 전개한 후의 원소 수가 원래 블록의 수보다 많아집니다.그래서 im2col을 사용해 구현..

    합성곱신경망, CNN(Convolutional neural network)

    합성곱신경망, CNN(Convolutional neural network)

    CNN은 이미지 인식과 음성 인식 등 다양한 곳에서 사용 되는데, 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 CNN을 기초로 할 정도로 중요한 신경망 중 하나 입니다. CNN의 등장 ; 완전연결 계층(Fully Connected Layer)의 문제점 완전연결 신경망에서는 완전연결 계층(Affine 계층)을 사용했습니다. 완저연결계층에서는 인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수 있습니다. 완전연결 계층의 문제점은 바로 데이터의 형상이 무시된다는 사실 입니다. 예를들어, (세로 * 가로 * 색상) 정보가 들어있는 3차원 이미지를 입력할 때 완전연결 계층은 1차원 데이터로 평탄화를 해줘야 합니다. 즉 3차원 속에서 의미를 갖는 본질적인 패턴의 형상을 무시하고 모든 입력 ..

    C++ 프로그래밍의 기본 요소

    C++ 프로그래밍의 기본 요소

    void main()? int main()? void main() { ... } vs int main() { ... return 0; } void main()은 컴파일 에러를 뱉진 않지만 C++표준이 아니기에 int main()을 권장합니다. int main()함수가 return한 값은 어디로? 부모 - 자식이 나뉘어진 경우 부모 프로그램은 자식 프로그램의 main() 함수에서 리턴한 값을 알아내는 함수를 통해, 자식 프로그램의 종료 상태를 알게 됩니다. 부모 - 자식이 나뉘어지지않은 경우(1개의 파일 등) 모든 프로그램의 부모는 운영체제이며, 운영체제와 응용프로그램 사이에 특별한 종료 관계가 설정되어있지 않기 때문에 응용프로그램이 0이 아닌 다른 정수를 리턴한다고 해도 아무런 의미가 없습니다. #inc..

    10026번 - 적록색약 c++

    10026번 - 적록색약 c++

    문제 설명 구역의 수를 묻는 그래프 탐색 문제 입니다. BFS 알고리즘만 이용하면 됩니다. (단, 메모리 초과 에러를 조심하세요) 다른 분들은 memset 함수를 이용해 visited배열을 초기화 시키셨던데 메모리 시간 차이가 많이 안나길래 저는 그냥 for문으로 초기화 시켰습니다. BFS를 한 번 돌면서 정상인과 적록색약의 답 모두 구하는 걸 고민했지만 N의 최대 크기($1 visited배열 초기화 -> 적록색약자가 보는 그림으로 변환(R과 G를 한가지 색상으로 통일) -> BFS -> 적록색약이 보는 그림의 구역 구하기 코드 #include #include #include int N; std::queue q; char picture[101][101]; int visited[101][101]; //방문..

    1697번 - 숨바꼭질  C++

    1697번 - 숨바꼭질 C++

    문제 설명 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS와 dijkstra 알고리즘을 섞어 사용했습니다. 문제 예시로 나와있듯이 수빈이가 -1, +1, *2 칸을 이동해서 동생을 잡는 건데요. 5에서 17을 잡을 때 5 -> 4 -> 8 -> 16 -> 17 처럼 최소 시간으로 잡아야합니다. 그러기 위해선 최단 경로 알고리즘인 다익스트라 알고리즘을 이용합니다. 다익스트라 알고리즘이란? https://yhoon..