본문 바로가기

전체 글257

[C++] 벡터(vector) 를 활용하여 큐(queue) 자료구조 구현하기 배열과 다르게 크기를 동적으로 조절할 수 있어 유용한 C++의 vector를 사용하여 FIFO 자료구조 queue를 구현해 보겠습니다. 선언 vector를 사용하기 위해 아래와 같이 선언할 수 있습니다. #include ... vector queue_v; 값 마지막에 추가하기 push_back 함수를 사용하여 vector의 끝에 원소를 추가할 수 있습니다. int i=2; queue_v.push_back(i); 첫 번째 값 제거하기 vector의 erase 함수를 사용하여 vector의 가장 첫 원소의 인덱스를 제거할 수 있습니다. queue_v.erase(queue_v.begin()); 첫 번째 값 저장 후 제거하기 값을 빼기 전에 뺄 값을 다른 곳에 활용해야 할 경우가 빈번한데, fron.. 2023. 7. 20.
[MacOS] 외부에서 맥 화면 원격 접속하기 (무료) 앞선 글에서는 맥북, 맥 미니 모두 동일한 네트워크에 연결되어 있는 경우에만 해당하였습니다. 이번 글에서는 외부에서도 원격 접속 가능하도록 공유기 설정을 하는 방법을 안내합니다. - 제가 사용중인 공유기는 iptime 공유기이므로 iptime 공유기를 기준으로 설명하겠습니다. - 맥 미니가 iptime 공유기에 정상적으로 연결되어 있고, 인터넷이 되는 상황을 전제로 설명하겠습니다. iptime 관리자 로그인 공유기에 연결된 상태에서 iptime 관리자 대시보드 주소 192.168.0.1 에 접속하여 로그인합니다. 맥 미니 IP 확인 맥 미니의 IP를 확인해야 합니다. 커넥션 정보에 들어가서 맥 미니의 IP를 확인합니다. 확인한 IP를 기억해 주세요. 일반적으로 해당 내부 IP는 동적할당된 IP이므로 안정.. 2023. 7. 18.
[MacOS] 맥북에서 맥 미니 원격 접속하기 (무료) 최근 개인용 서버로 사용하기 위해 맥 미니를 중고로 업어왔습니다. 24시간 서버로 운용하면서 간간히 원격으로 접속할 예정인데요, 맥북에서 맥 미니로 원격 접속하는 방법을 써보겠습니다. (무료, 십만원 짜리 apple remote desktop 미사용) 사전 조건 원격 접속하기 위해서는 아래와 같은 조건이 전제가 되어야 합니다. 맥북, 맥 미니 동일한 apple계정으로 로그인되어 있어야 합니다. 맥북, 맥 미니 동일한 네트워크에 접속되어 있어야 합니다. 맥 미니 시스템 설정 -> 공유 -> 화면 공유 허용상태여야 합니다. 원격 접속 맥북에서 파인더를 열어 네트워크를 클릭합니다. 원격 접속하고자 하는 맥 미니를 우클릭하여 화면 공유를 선택합니다. 맥 미니에 셋팅된 사용자 이름과 비밀번호(맥 미니의 비밀번호).. 2023. 7. 18.
[MacOS] M1 실리콘 환경에서 g++ 로 c++ 프로그래밍하기 이 글은 homebrew와 xcode가 정상적으로 설치된 환경을 전제로 진행합니다. Xcode Command Line Tools 설치 터미널을 열어 아래 명령을 통해 command Line Tools을 설치합니다. xcode-select –install cask 설치 homebrew를 통해 cask를 설치합니다. brew install cask 컴파일 g++ 또는 clang 명령어를 통해 c++ 언어로 작성한 cpp 파일을 아래와 같이 컴파일할 수 있습니다. g++ test.cpp // 또는 clang test.cpp 2023. 7. 9.
[백준] 1463 1로 만들기 요약 처음에 2차원 배열로 풀이를 작성하였지만 시간초과였습니다. 1차원 배열의 Bottom-UP 방식의 배열을 1회 순회하는 코드를 작성하여 문제를 해결하였습니다. 이전 단계에서의 최솟값을 어떠한 값을 기준으로 해야 하는 지 아는 것이 문제의 핵심으로 보입니다. 제가 이전에 풀었던 설탕 배달 문제와 유형이 동일합니다. 솔루션 python3 으로 솔루션을 작성하였습니다. def getMin(n): ''' e.g n==10일때 0 1 2 3 4 5 6 7 8 9 10 0 0 1 2 3 ''' dp = [0 for _ in range(n+1)] dp[1] = 0 for index, value in enumerate(dp): if index == 0 or index == n: continue if index+1 2023. 7. 7.
[Kotlin] 코틀린 제네릭(Generics)의 기본 코틀린은 타입 안정성과 유연함 극대화에 대한 고민을 통해 만들어진 언어입니다. 이번 글을 통해 코틀린 제너릭이 무엇인지 알아보겠습니다. 제너릭 (Generic) 제너릭은 클래스 내부에서 사용하는 변수의 자료형을 외부에서 설정할 수 있도록 돕는 기법입니다. 아래의 코드를 보면 동일한 클래스 Phone 내의 version변수가 아이폰은 문자열, 갤럭시는 정수로 저장되는 것을 확인할 수 있습니다. 갤럭시의 버전이 항상 정수로 이루어져 있고 아이폰의 버전은 항상 문자열로 표시, 저장되어야 할 때(예시를 위한 가정) 이 상황에서 제너릭은 기존의 엄격한 타입 체킹의 제약에서 벗어나는 방법이 될 수 있습니다. fun main() { var iphone: Phone = Phone("14ProMax") var galax.. 2023. 7. 5.