분류 전체보기(227)
-
객체 지향 프로그래밍 정리
객체란? 객체란, 변수들과 참고 자료들로 이루어진 소프트웨어 덩어리이다. 객체가 현실 세계에서의 존재하는 것들을 나타내기 위해서는 추상화(abstraction)라는 과정이 필요하다. 아래의 그림은 객체를 간단하게 표현한 그림이다. 이와 같이 어떠한 객체는 자기만의 정보를 나타내는 변수들과, 이를 가지고 어떠한 작업을 하는 함수들로 둘러싸고 있다. 참고로, 이러한 객체의 변수나 함수들을 보통 인스턴스 변수(instance variable)와 인스턴스 메서드(instance method)라고 부르기도 한다. 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메서드를 통해서 간접적으로 조절하는 것을 캡슐화(Encapsulation)라고 부른다. 캡슐화의 장점은 간단하게 "객체가 내부적으로 어떻게..
2023.03.18 -
참조자 공부 내용 정리
레퍼런스 선언하기 int형 변수의 참조자를 만들고 싶을 때에는 int&를 double의 참조자를 만들려면 double&이다. 자료형 뒤에 &를 붙여서 선언이 가능하다. 참조자는 컴파일러에게 num1의 또 다른 이름은 num1이라고 알려주는 것이다. 1 2 3 4 5 6 7 8 #include int main() { int num1 = 5; int& num2 = num1; return 0; } cs 레퍼런스 특징 래퍼런스는 반드시 처음에 누구의 별명이 될 것인지 지정해합니다. 1 2 int& another_a; // 오류: 참조 변수에 이니셜라이저가 필요합니다. cs 이런 식으로 참조자는 이니셜라이저 없이는 선언이 불가능합니다. 두 번째 특징으로는 레퍼런스는 한 번 별명이 되면 절대로 다른 이의 별명이 될..
2023.03.17 -
백준 1707번: 이분 그래프 / C++
1707번: 이분 그래프 (acmicpc.net) 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 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 8..
2023.03.16 -
백준 2206번 : 벽 부수고 이동하기 / C++
처음에는 벽을 한개씩 부스는 연산을 했었는데 시간초과가 나거나 메모리 초과가 발생해서 접근방법을 벽을 부순 경우와 부수지 않은 경우로 케이스를 나누어서 해결하였다. https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 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 ..
2023.03.16 -
백준 7575번 : 토마토 / C++
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 토마토 맛 토마토..... 바이러스가 퍼지는 문제처럼 익은 토마토는 안익은 토마토를 전염시키는 문제이다. 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..
2023.03.15 -
백준 2178번 : 미로 탐색 / C++
2178번: 미로 탐색 (acmicpc.net) 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 빨리 그래프 공부를 열심히해서 길찾기 알고리즘 A*를 구현하고 싶다. 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..
2023.03.15