본문 바로가기

분류 전체보기

(51)
백준 두 수의 합(3273) C++ 풀이 알고리즘 분류 정렬 두 포인터 문제 해결 아이디어 위 사진에서 알 수 있듯이 arr[L] + arr[R]를 더하여 숫자가 더 크면 작아져야 하므로 R를 왼쪽으로 이동시키고 더 작으면 커져야 하기 때문에 L을 오른쪽으로 이동시킨다. 또한 자기가 설정한 값이 같다면 L은 오른쪽, R은 왼쪽으로 시켜 다른 인덱스의 값이 설정한 값과 같은지 체크하면 된다. 코드 #include #include using namespace std; int n; int arr[100000]; int target; int result = 0; int main() { cin >> n; int left = 0, right = n - 1; for (int i = 0; i > arr[i]; } cin >> t..
백준 방 번호(1475) C++ 풀이 알고리즘 분류 구현 문제 해결 아이디어 0 ~ 8번 인덱스의 값을 넣을 수 있는 배열을 만들고 각 해당되는 숫자 인덱스에 값을 더하고 9는 6번 인덱스에넣는다. 그런 다음 최대값을 구한다. 코드 #include #include using namespace std; int arr[9]; // 0 ~ 8 => 9는 6번째 Index에 넣음 string n; int resultMax = 0; int main() { cin >> n; int num; for (int i = 0; i < n.length(); i++) { num = n[i] - '0'; if (num == 9) num = 6; arr[num]++; } for (int i = 0; i < 9; i++) { int compare = i == 6 ? c..
C# 참조해야 할 때 사용할 수 있는 ref와 out 유니티로 게임을 개발하고 있던 중 함수 매개변수를 참조형 변수로 사용을 했어야 했습니다.. 저는 평소 C++에서 사용하는 참조형 변수(&)를 사용하여 문제를 해결하려 했습니다. class Program { static void Fun(int& num) { num = 3; } static void Main(string[] args) { int a = 5; Fun(a); Console.WriteLine(a); } } 위 코드처럼 쓰니 프로그램이 정상적으로 작동하지 못하고 오류가 발생했습니다. 그래서 저는 C#의 참조형 변수를 선언하는 방법을 찾아보니 ref 또는 out을 사용하면 된다고 하였습니다. ref와 out의 공통점 class Program { static void Fun(ref int num) { ..
초보자를 위한 STL list 정리 1)list란 무엇인가 1-1.list의 존재 이유 초보자를 위한 C++ STL forward_list 정리 1)forward_list 사용 이유 앞서 살펴본 STL array, vector같은 연속된 자료 구조에서는 데이터 중간에 자료를 추가하거나 삭제하는 작업이 비효율적입니다. 따라서 C++는 자료 추가, 삭제 작업을 효율적으 khjtoy.tistory.com 앞서 설명한 forward_list는 아주 기본적인 형태로 구성된 단일 연결 리스트이기 때문에 리스트 끝에 원소 추가, 역방향 이동, 리스트 크기 반환 등의 기능은 제공하지 않습니다. 이는 메모리를 적게 쓰고 빠른 성능을 유지하기 위함입니다. 그러므로 forward_list는 빠른 원소 삽입이 필요한 모든 경우에 어울리는 컨테이너는 아닙니다. ..
초보자를 위한 c++ STL 반복자(iterator) 정리 1)반복자란 무엇인가 앞서 array, vector, forward_list를 설명할 때 반복자(iterator)를 사용한 것을 기억하실 것입니다. 초보자를 위한 c++ STL array 정리 목차 ·array 사용 이유 ·array 사용 방법 ·array 초기화 ·array 객체를 다른 함수에 전달 ·array 원소 접근 ·원소 접근 함수 ·swap 함수 ·array의 대입 복사 ·array의 비교 연산 1)array 사용 이유 int arr[Size]; khjtoy.tistory.com 초보자를 위한 c++ STL vector 정리 1)vector 사용 이유 앞서 알아본 array의 C 스타일 배열의 향상된 버전입니다. https://khjtoy.tistory.com/2 초보자를 위한 c++ STL ..
초보자를 위한 C++ STL forward_list 정리 1)forward_list 사용 이유 앞서 살펴본 STL array, vector같은 연속된 자료 구조에서는 데이터 중간에 자료를 추가하거나 삭제하는 작업이 비효율적입니다. 따라서 C++는 자료 추가, 삭제 작업을 효율적으로 할 수 있는 연결 리스트의 기본 형태인 forward_list 클래스를 제공합니다 2)forward_list 사용 방법 forward_list는 전체 리스트 크기를 반환하거나 또는 첫 번째 원소를 제외한 나머지 원소에 직접 접근하는 기능은 제공하지 않습니다. 즉, front() 함수는 있지만 back() 함수는 없습니다. 2-1.forward_list 초기화 #include #include using namespace std; int main() { //크기가 0인 forward_l..
초보자를 위한 c++ STL vector 정리 1)vector 사용 이유 앞서 알아본 array의 C 스타일 배열의 향상된 버전입니다. https://khjtoy.tistory.com/2 초보자를 위한 c++ STL array 정리 목차 ·array 사용 이유 ·array 사용 방법 ·array 초기화 ·array 객체를 다른 함수에 전달 ·array 원소 접근 ·원소 접근 함수 ·swap 함수 ·array의 대입 복사 ·array의 비교 연산 1)array 사용 이유 int arr[Size]; khjtoy.tistory.com 만약 array의 대해 잘 모른다면 위 내용을 한번 읽어보고 오시기를 바랍니다. 다만 array의 주요 단점 때문에 실제 응용 프로그램 개발에서 유용하게 사용하기 힘듭니다. array 단점 1.array의 크기는 컴파일 시간..
백준 영역 구하기(2583) C++ 풀이 알고리즘 영역 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 문제 해결 아이디어 연결되어 있는 빈칸의 개수를 DFS를 통해 연결하여 개수를 세어 출력하면 된다. 코드 #include #include #include using namespace std; int m, n, k; int arr[101][101]; // 상하좌우 세팅 int dirX[] = { 0, 0, -1, 1 }; int dirY[] = { -1, 1, 0, 0 }; int cnt = 0; vector result; int dfs(int y, int x) { // 방문처리 arr[y][x] = 1; count +1 증가 cnt++; // 상하좌우 탐색 for (int i = 0; i < 4; i++) { int _y = y + ..