본문 바로가기

컴퓨터 기초11

탐욕 알고리즘(Greedy Algorithm) 그리디 알고리즘, 욕심쟁이 알고리즘이라고도 부른다. 탐욕 알고리즘은 최적해를 구하는 알고리즘으로, 매 순간순간마다 최적의 방식을 선택하여 최종적인 최적해에 도달한다. 물론 순간순간의 최적의 선택을 했다고 해서 이것이 최종적으로 최적이라고 하지 않는다. 대표적인 예시가 마시멜로 실험이다. 현재 순간에 마시멜로를 먹는다면, 미래에 마시멜로가 없고 / 현재 순간에 마시멜로를 먹지 않는다면 미래에 마시멜로가 두 개이다. 이 때 최적의 마시멜로를 먹을 수 있는 최적해를 찾아야 한다. 라는 문제를 보자. 물론 상식적으로는 현재에 마시멜로를 참고, 미래에 마시멜로를 두 개 먹는 것이 최적이다. 그러나 그리디 알고리즘에서는 현재 하나를 먹는다. 왜냐고? 그리디 알고리즘은 '현재 순간' 에서 최적의 방식을 선택하기 때문.. 2023. 2. 2.
의사코드(pseudocode) 프로젝트를 하다가 필요하다는 사람이 있어서 오랜만에 쓰게 되었던 의사코드. 수도코드라고도 부르기도 한다. 한 프로세스를 컴퓨터 언어로 짜기 전에 사람의 언어로 우선 로직을 짜는 것을 의미하며, 먼저 프로세스를 정리할 수도 있고, 동료 개발자들과 이후 해당 프로세스를 공유할 때 동료 개발자가 편리하게 코드를 해석하고 의사소통하는데에 도움이 된다. 의사코드의 예시를 들어보자. 개발자 A는 다음의 프로세스 개발을 요청받았다. "기존에 데이터베이스에 온도를 기록하는건 그대로 하고, 날씨가 추워지니 영하 5도 아래가 되면 난방을 틀도록 메세지를 보내라." 이거를 사람의 언어로 짜면 어떻게 될까? 1. 온도계의 정보(온도)를 가지고 와서 변수를 초기화한다. 2. 가지고 온 온도 변수를 비교한다. 3. 만약 해당 온.. 2022. 12. 12.
디자인 패턴 1. Singleton Pattern(싱글톤 패턴) 요즘 백 투 베이직(Back To Basic)을 생각하며 제일 기본적인 것부터 시간 날 때마다 하나하나 정리하고 있다. 제일 처음이 싱글톤 패턴이다. 프론트엔드 개발자의 시점으로 해석함에 유의하자. 언어는 자바(Java), 코틀린(Kotlin), 스위프트(Swift)가 기준이다. 프로그램의 기본적인 구조는 다음과 같다. 여러개의 뷰 스택이 있고, 그 속에는 데이터가 쌓여있다. 이걸 아마 코드로 표현하면 이렇게 될 것이다. (getter/setter이 있다고 가정하자) class UserInfo { var name : String = "김마리" var age : Int = 18 } class View1 { var userInfo = UserInfo() var name = userInfo.getName() .. 2022. 6. 21.
응용프로그램 설치하기(2) 데이터베이스를 공부하기 위해 oracle, develop tool 을 설치해야한다. 1. oracle Express edition은 교육용이고, Enterprise/Standard는 유료이다. 오라클을 다운받아서 압축을 해제한다. 이 때 주의할 점이 있다. 1) 내 컴퓨터의 이름이 한글이면 안됨. 2) 사용자 계정이 한글이면 안됨 (도스창 -> netplwiz) 3) 최상위 경로에 설치(그렇지 않으면 폴더가 인식 범위를 넘어설 수 있음) 4) 설치되는 폴더명에 한글이 포함되어 있으면 안됨. 5) 8080포트가 사용되고 있으면 안됨. (다음에서 8080이 있는지 확인) 이후 오라클을 그대로 설치하면 된다. 서버 아이디와 비밀번호를 설정하고, 방화벽을 해제하면서 설치하면 완료. 2. develop tool .. 2020. 3. 18.
반응형