반응형

분류 전체보기 135

[사랑의 기술 1 (에리히 프롬)] 사랑의 이론 - 인간의 본능과 갈망

사랑에 대한 어떠한 이론이든 인간른으로부터, 곧 인간 실존론으로부터 시작되어야 한다. 우리는 사랑, 또는 사랑과 비슷한 것을 동물에게서도 발견하지만, 동물의 애착은 동물의 본능적 기구의 일부에 지나지 않는다. 그러나 인간의 경우엔 다만 이러한 본능적 기구의 잔재가 작용하고 있음으로 볼 수 있을 뿐이다. 인간의 실존에 있어서 본질적인 것은 인간이 동물계로부터, 곧 본능적 적응의 세계로부터 벗어났고 자연을 초월해 있다는 사실이다. 인간은 자연의 일부이다. 그러나 한번 자연과 결별하면 인간은 자연으로 되돌아 가지는 못한다. 일단 낙원 -자연과의 본래의 합일 상태-에서 쫓겨나면, 다시 돌아가려 해도 불타는 칼을 가진 케루빔 천사가 길을 가로막는다. 인간은 철저하게 생실한 전 인간적 조화 대신에, 이성을 발달시키..

끄적/심리학 2023.01.18

백준 10250번 - ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

백준 1655 [1] - 가운데를 말해요 : 우선순위 큐(최소힙 최대힙) 뜯어보기

문제 백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로..

백준 1806: 부분합

문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다. 1. 문제 해석 1.1. 투 포인터 알고리즘 포인터 2개(low, high) 를 이용해서 원하는 구간을 설정하면서 이동한다. - 정렬된 데이터 집합에서 합집합, 교집합 구하기..

[검색하는 방법] 모르는 게 생기면 어떻게 하는 게 좋을까? - 1. 검색편

모르는게 생기면 잘 아는 사람에게 물어보는 것이 가장 빠를 것입니다. 하지만 물어볼 사람이 없다면 ? 그때는 검색이 가장 빠른 방법일 것입니다. 검색을 잘하는 기술은 정말 중요합니다. 특히 IT 업계쪽에서는 매번 오류가 나는 문제, 새롭게 배우는 알고리즘을 이해할 때 어려움을 겪는 문제 등 여러가지 문제를 접했을 때 주로 검색을 통해 해결하죠. 또한, 질문을 하려고 할 때에도 먼저 검색을 통해서 혼자서 열심히 알아보았으나 잘 해결되지 않는 부분을 정리해서 질문을 해야지, 그냥 질문을 하면 사수나 상사가 눈살을 찌뿌릴 수도 있습니다. 따라서 검색을 효과적으로 하는 방법은 개발자에게 정말 중요하다고 할 수 있습니다. 하지만 내가 원하는 답을 찾으려면 몇가지 기술이 필요합니다. 저는 이 기술이 부족하다고 생각..

끄적 2023.01.14

[기획] - 역기획 : 배달의 민족에게 새로운 서비스 제안하기 (추천시스템)

오늘은 신기한 컨텐츠를 가지고 왔습니다. 2022년도 1학기에 진행했던 학교 프로젝트에서(학생들이 만들어가는 수업) 배달의 민족이라는 서비스를 역기획 분석한 적이 있습니다. 역기획이라고 함이 단지 기획의 반대, 즉 분석 그리고 분석일 것이라고 생각하실 수 있지만, 가장 중요한 것은 그 분석을 끝낸 뒤 자신만의 기획을 내놓는 것이라는 팀원들과의 공통된 토론이 있었습니다. 그리고 그 마무리의 종점을 찍기 위해 직접 배달의 민족 서비스에서 새로운 서비스 기능을 기획하는 일을 하였습니다. 아래는 그 발표내용입니다 . *본 게시물은 개인의 창작물로, 도용 및 무단 게시를 금지합니다. 배달이라는 아이콘의 새로 쓴 역사는 단연컨대 배달의 민족입니다. 기획을 해보기에 앞서 우선 ‘배달’이라는 기획 틀 안에서 ‘배민’이..

카테고리 없음 2023.01.14

[minishell] - setenv 함수 구현하기

1. setenv 환경변수를 등록하거나 변경하는 함수이다. - 헤더: stdlib.h - 형태: **int** setenv(**const** **char** *envname, **const** **char** *envval, **int** overwrite) - 인수: **char** *envname 환경 변수 이름 **char** *envval 변수값 **int** overwrite 이미 같은 이름의 변수가 있다면 값을 변경할지의 여부 - 반환: **int** 성공하면 0, 실패하면 -1 설계한 pseudo code는 다음과 같다. 설계한 pseudo code 1. key_finder를 통해 원하는 key를 불러온다. (=이전의 문자열) 2. key를 이용해서 맞는 환경변수의 value를 찾는다. 3...

[linux] - 새로운 명령어 만들기

1. 원리 보통 쉘에 명령어를 입력하면, 쉘은 환경변수에 등록된 경로에서 명령어가 있는지 찾아 그 명령어 프로그램을 실행한다. 이때 경로는 앞에서부터 차례로 탐색한다. 2. $PATH 그러한 환경변수는 $PATH 로, 아래와 같다. (운영체제 혹은 설치 프로그램에 따라 이 내용은 다를 수 있다. ) ':'로 나뉘어진 경로 별로 각 경로에 명령어들이 저장되어있다. 가령 /user/bin/이라는 명령어로 가보면, 이러한 명령들이 잔뜩 들어있다. 3. 나의 명령어 만들기 그런데 신기하게도 나도 쉘 명령어를 만들 수 있다. 그 방법은 다음과 같다. 1. 프로그램을 만들어서 mybin 폴더 안에 넣음. 2. $PATH에 mybin을 추가한다. export PATH=$PWD/mybin:$PATH (export : ..

[minishell] - echo 함수 구현하기

echo -n option 까지 작동하는 함수 구현하기 아래와 같은 경우의 출력예시를 살펴보면, -n 옵션이 있을 때 개행없이 출력한다. 1. 이때 ""안에 있는 경우에는 문자열로 취급하고, -nnnnn 같은 경우 옵션으로 인식한다. 2. 또한, -nnna 같이 옵션이 아닌 문자가 끼어있으면 그냥 문자열로 취급한다. 3. 한번 문자열을 인식하면 그 이후에 적힌 -n 같은 옵션 형식도 모두 문자열로 취급한다. 4. 환경변수로 -n이 등록되어있다면 역시 옵션으로 인식한다. 구현한 코드는 다음과 같다. #include "../inc/minish.h" intft_find_option(char *argv) { inti; intcnt; i = 1; cnt = 0; if (argv[0] != '-') return (..

[minishell] - 환경변수 파싱하기, 재귀함수 이용한 문자열 추출함수 만들기

key = value 라고 지정된 문자열에서 key만을 추출하는 함수를 만드려고 한다. (key = value 에서 value를 찾으려면 ‘=’을 찾은 후 그 이후의 문자열을 복사, 반환하면 된다. ) (존재한다는 가정 하에) 문자열, idx= 0 부터 하나씩 증가시키면서 문자열[idx]를 검사한다. ‘=’를 만나면 그동안 찾은 idx = 문자열 길이 이므로 key_finder(char *key_value, int idx) { if (ret[idx] == '=') { char * ret = (char *)malloc(sizeof(char)*(idx + 1)); ret[idx] = ; return ret; } } 아직 ‘=’를 만나기 전이라면 -재귀적으로 수행, 스택에 쌓인 후 재귀가 종료되기 시작하면(=..

728x90
728x90