728x90

분할정복

           > 1. 주어진 문제의 입력을 나눌수 없을 때까지 두개이상 작은 문제로 순환적으로 분할

              2. 작은 문제들을 각각 해결

              3. 그해를 결합하여 원래 문제의 해를 구하는 방식

분할 > 정복  > 결합

이진탐색 : n개 -> n/2 + (n/2) 분할 -> (n/4) + n/4 + (n/4 + n/4) 분할한 것의 일부만 사용

합병정렬 : n개 -> n/2 + n/2 분할 -> n/4 + n/4 + n/4 + n/4

퀵정렬 :   n개 -> a + b 분할 ->c+d+e+f

선택문제: n개 ->  a + (b) 분할 ->(c)+d+(e+f) 분할한 것의 일부만 사용


이진탐색

> 정렬된 상태의 데이터에 대해 적용 

분할 : 가운데 원소를 기준으로 왼쪽과 오른쪽 부분배열로 분할, 탐색키와 가운데 원소가 같으면 해당 원소의 배열 인덳를 반환/종료

정복 : 탐색 키 X가 가운데 원소보다 작으면 왼쪽 부분배열 대상으로 이진 탐색을 순환 호출, 크면 오른쪽 부분배열을 대상으로 이진탐색 순환 호출

결합 : 부분배열에 대한 탐색 결과가 직접 반환되므로 결합이 불필요

-순환형태-

BinarySearch(A[] , Left, Right, x)

{

    if(Left > Right)return -1;//탐색 실패

   Mid = (Left+Right/2);

   if(x == A[Mid]) return Mid;

   else if(x < Mid)Binary Search(A, Left, Mid-1, x) //왼쪽 부분배열

   else BinarySearch(A, Mid+1, Right, x)//오른쪽 부분배열

}

-반복형태- >> 효율이 좋음

BinarySearch(A[] ,n, x)

{

    Left = 0; Right = n-1;

    while (Left <=Right){

        Mid ==(Left + Right)/2;

        if(x==A[Mid]) return Mid;

         else if (x<Mid) Right = Mid -1; //왼쪽 부분배열

         else Left = Mid +1;//오른쪽 부분배열

   }

    return -1;

}

n/2^k =1

k = logn  ==> 데이터 8 개 면 3번 분할. 

> 최대 비교횟수 = 최대 분할 횟수 +1  ==>4번 분할. 

성능

T(n) : 입력 크기 n에 대한 탐색 가정에서의 모든 비교횟수의 합. 

     = 맨 바깥 수준에서의 비교횟수 + 순환 호출에서의 비교횟수. 

-점화식-

T(n) = T(n/2) +O(1)(n>1), T(1) =1

T(n) = logn

>입력이 정렬된 리스트에 대해서만 적용가능

> 삽입/삭제 연산 시 데이터 정렬 상태 유지가 필요

    - 평균 n/2개의 데이터 이동이 발생 -> 삽입/삭제가 빈번한 응용에는 부적합. 

 

 

 

 

 

 

'Made by Miseong > 2019 알고리즘' 카테고리의 다른 글

2. 분할정복 - 퀵정렬  (0) 2019.08.04
2019알고리즘  (0) 2019.08.04
728x90

2019년이 5달 남은시점.. 경력 3년이 채워지는시점.. 

난 아직도. 알고리즘을 모르겠다.  5번정도 스터디를 시도하거 같은데.. 아직도 모르겠다. 

자료구조와 알고리즘은... 2019안에 확실히 알고 갔으면 하는 마음으로 시작한다. 

 

1. 분할정복알고리즘 - 이진탐색, 퀵정렬

2. 동적 프로그래밍

3. 욕심쟁이 알고리즘

4 . 정렬알고리즘

5. 탐색알고리즘

6. 근사알고리즘

7. 해 탐색 알고리즘. 

 

 

'Made by Miseong > 2019 알고리즘' 카테고리의 다른 글

2. 분할정복 - 퀵정렬  (0) 2019.08.04
1. 분할정복 - 이진탐색  (0) 2019.08.04
728x90

계속 자리에 앉아 있을 것이냐춤을 출 것이냐 선택의 갈림길에 서면 나는 네가 춤을 추었으면 좋겠어

당신이 두려워하는 것에 다가갈때 이 점을 명심하자. 만약 무엇이든 해보고자 마음을 열면, 당신이 치르는 가장 고된 투쟁은 당신의 가장 훌륭한 강점으로 이어질 것이다.

"당신이 정말 원하는 게 뭔가요?" "당신이 나를 소중히 여기는지 알고싶어요"

꿈을 크게 꾸자. 아주. 아주. 크게 꾸자. 열심히 노력하자. 정말, 정말, 열심히 노력하자. 그리고 자신이 할 수 있는 모든 것을 한 후에는 당신보다 더 큰 그힘의 존재에 모든 것을 오롯이 맡겨보자. 

나의 행복이나 불행이 다른 사람의 책임이라고 생각하는 것은 시간 낭비다. 우리는 반드시 용기를 내어 타인에게서 받지못한 사랑은 자신에게 주어야 한다. 

내 성장을 위한 새로운 기회가 매일 어떻게 찾아오는지 눈여겨 보는 것부터 시작해보자. 어머니와 싸우다가...중략.. 나는 쓸모없는 사람이라고 생각하는 무의식적인 감정이 내가 하는 모든 일에 어떻게 모습을 드러내는지 살펴보자. 그러한 경험을 통해 삶은 우리에게 과거에서 벗어나 온전한 한 인간이 되라고 촉구한다. 주의를 기울여보자. 나의 서택 하나하나가 나만의 길을 닦을 기회를 준다. 끊임없이 움직이자. 한껏 속도를 내자. 

탁월함은 인종차별을 막는 가장 강력한 억제책입니다. 그러므로 , 탁월해 지십시오

내가 추구할 가치가 있는 유일한 목표는. 의식의 변환을 통해 내가 다른 모든 존재보다 더 나은 존재도 더 못한 존재도 아니라는 것을 깨닫는 것이다. 나는 그저 나라는 것을 깨 닫고자. 한다. 

"당신이 내게 하려는 짓은 이미 당신에게 되돌아 갔어요"

최근에 오프라 윈프리가 직접 쓴 책이 몇권 나왔는데.. 이제서야. 읽어본다. 

다른 사람의 글속의 오프라윈프리는 어린시절의 고통을 일순간 해결하고 다음 스탭을 밟고 있는 사람처럼 느껴졌었다. 

그런데 이제는.. 계속 성장중인 사람으로 보인다. 어린시절의 고통을 다 해결하지 못했지만... 여전히 그것들이 남아있기는하지만 주어진것에 감사하고, 성장하는사람. 

728x90

우울한 감정 다스리기
1. 일기쓰기 - 20분 모든 일이 최대한 잘 풀리고, 바라던 목표가 모두 달성될 경우 자기미래가 어떻게 될것인가.
2. 감사표현
3. 운동
4. 행복한 기억
5. 20분씩 명상

 

당신의 인생에서 가장 중요한 가치 10지는?-가장 중요한 10가지 목표: 항목, 목표, 마감기한

1. 직접적기

2. 현실적 불가능해도 적기

3.크게 생각

4. 긍정적으로 생각

5. 나의 목표

요소별 목표 6개.

-경제적인 부분 5년

-육체 저인 부분

-자기개발

-가족

-마음

-인간관계

-커리어

>> 수정된 열가지 목표 :구체적, 측정가능, 이룰수있는, 나와 관계있는 정밀하나 기한

도구들>>만다라트  마인드맵  에버노트

무라카미 하루키 -9시 취침 4시 기상 : 리추얼:습관

스피치 사실-생각-바람.+ 공감

 

1. 감정의 쓰레기를 버려라(부정적사고가 자유로운 생각과 행동을 가로막는다.)

2. 생각을 분류하라. "생각서랍"활용

3. 말과 글로 완성하라. 같은내용도 배치와 표현에 따라 완전히 달라진다. 

생각을 정리하고 싶었는데... 생각을 정리하는 건지는 모르겠다. 이건...성공을 위한 백서? 에 가깝다. 

가. 일기쓰기 - 20분 모든 일이 최대한 잘 풀리고, 바라던 목표가 모두 달성될 경우 자기미래가 어떻게 될것인가

내가 사는 곳 반경 4키로 미터 내에는 가난한사람이 없고, 모두 원하는 삶을 살면서 안정을 느끼며, 즐겁게 살고있다. 

나역시 따뜻한 가족과 풍족한 수입으로 안정적으로 살고 있다. 

누구나 내가 개발한 시스템으로 자신의 안정을 찾고, 진로를 찾고, 높은 효율로 일한다. 사실 대부분은 노동이 많은 일들은 모두 기계가 하고 있고, 사람들이 하는 일은 고수입의일들만 남은 영향도 적지 않다. 내가 만들 시스템의 성과일수도 있다. 

모두가 과거에 얽매이지 않고, 지금을 충분히 느끼며 평안하게 살고 있다. 가난한 나라에도 내가 만든 시스템을 도입하기만하면 사람들의 효율이 높아져서 쉽게 안정적이 나라가 된다. 그리고 그 시스템은 평화와 인류에 대한 사랑을 기반으로 하기 때문에 전쟁같은것도 없다. 

그리고 난 그 수익으로 내가 사는 곳 4키로 내의 모든 사람들이 안정을 느낄 수 있도록 기여한다. 

그것에 나도 내가족도 행복해하고, 평생 안정을 느끼면서 산다.  사람들의 심리를 관통하는 성장시스템을 만든다.  그래서 고통스러워 아파하는 사람들이 단 한사람도 안남았으면좋겠다. 

나. 당신의 인생에서 가장 중요한 가치 10지는?-가장 중요한 10가지 목표: 항목, 목표, 마감기한

1. 건강( 평생- 지치지 않도록) 2. 평안 (평생- 숙면) 3. 내가 가치있음을 느끼는것 (평생- 나의 능력대로는 사용할 수 있길)

 4. 세상에 대한 기여. (4~50, 누구나 원하는 대로 성장 가능한 프로그램 만들기)5. 가족 행복(평생- 기대고, 기대게 해줄수있는 사람으로 살기).6. 보금자라(50이전, 빛없는 내집) 7. 금전적 여유(평생: 원하는건 가능한 할수 있길) 8.하루업무 재시간에 끝내기(매일-7시간 내로 끝내기)9. 능력있는 전문가. 되기(42- 데이터분석, java 코딩, spring, 안드로이드 , 서버 빠짐이 없는 전문가.)  10. 친구 (평생, 좋은 거리감을 갖는 사람들과 같이가기. )

다. 요소별 목표 6개.5년

-경제적인 부분  : 1. 집을 산다. 2. 내가 원하는 프로그램을 일부 구현 수익을 낸다. 3. 지금 전세자금 해결.  4. 부모님과 유럽여행. 5. 금전분배 잘하기. 

-육체 적인 부분 : 겉보기 55키로. 스쿼드 100개, 플랭그 3분, 10키로 달리기(이석증때문에.. 괜찮을지..)

-자기개발 : 1.it 기본 지식 채우기. 2. 영어 프리토킹(유창).3. 

-가족.. 해결이 될꺼다. ㅋㅋㅋ

-마음.. 명상10분, 긍정일기쓰기, 

-인간관계: 마음을 터놓을 수 있는 친구 10명 만들기.

-커리어 1. java spring 완전 분석 2. 알고리즘 완전 이해 3. 자료구조 완전이해, 4. 컴퓨터구조 이해 5. 어플 제작 마스터. 

 

 

 라. 수정된 열가지 목표 :구체적, 측정가능, 이룰수있는, 나와 관계있는 정밀하나 기한

 1. 하루 명상 10분

2. 가장힘들었던일- 긍정일기 5줄

3. it 이론공부 1시간

4. 코딩 1시간 30분

5. 영어 30분

6. 스쿼트 100개, 플랭크 3분

7. 독서(최소 10분)

8. 11 취침 6시 기상 습관

9. 가족과의 통화 주1회

10. 취미(합창단)

 

728x90

"충고, 조언, 평가, 판단 금지. "

.. 요즘.. 좀처럼 마음이 다시 일어나주지 않아서 힘들었는데.

방법을 찾았다. 내 마음에 공감해주기. 충고, 조언, 평가, 판단, 금지. ㅎㅎ

"배터리가 3퍼센트쯤 남은 자기 소멸의 공포속에서...자기 소멸의 두려움과 공포에 휩싸인 사람은 수단과 방법을 가리지 않고 방전에 저항한다. 자기 존재 증명을 필사적으로 시도한다. 몸을 던진다. 생의 마지막 본능이다. 3퍼센트 남은 에너지로 30퍼센트의 힘이 필요한 새로운 계획이나 시도를 하기도 한다. 그래서 마지막 남은 3퍼센틀르 순식간에 다 태워버리고 재가 되어버리는 안타까운 일이 일어난다. "

"공감을 받으면 마음에 봄이 온다"

"관계를 끊는 것이 너와 나를 동시에 보호하는 불가피한 선택일 때가 있기 때문이다."

"공감은 다정한 시선으로 사람 마음을 구석구석, 찬찬히, 환하게 볼수있을 때 닿을 수 있는 어떤 상태다."

"경계선- 국경 수비대가 한명도 없는나라"

"자기보호가 먼저다- 자신의 상처를 먼저 공감받아야 한다. "

"공감- 심리적 참전중, 자기보호를 잘하는 사람이 남을 도울 수 있다. "

"상하관계 - 자기를 지켜낸 힘으로 먹고 살수 있다."

"징징거리지말고 스스로 알아서 해야 한다고... 그렇게 사는 것이 독립적인 성인이라고 강요해왔습니다."

찌질한 감정도. 인정하고 공감해주기. ..

"넌 누구니? 지금 이순간이 너한테는 어떠니? 진심으로 마음이 움직이는 거니? 재미있니?"

"오늘은 잘 했니? 얼마나 보람된 일을 했니?

 

"유형과 조건으로 사람을 판단하는 습관-공감은 들어주는 방법론의 문제가 아니다. 한 사람의 외형적 무엇에 압도되지 않을 수 있는 힘이 있을 때 가능한 일이다.

"아들 여자친구에 대해 물어보듯이.

"아.. 그런 정도였구나. 그렇게나 보고싶었구나.."

 

 

 

 

 

728x90

1. 패키지 생성: start.spring.io

- Gradle Project , Java, 최신 스프링부트 버전

- Dependencies: Web

2. .gitignore 생성

github 자동생성 https://www.gitignore.io/
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Created by https://www.gitignore.io/api/java
# Edit at https://www.gitignore.io/?templates=java

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# End of https://www.gitignore.io/api/java

 

728x90
728x90

존경이란 인간의 모습을 있는그대로 보고, 그 사람이 유일무이산 존재임을 아는 능력이다.

존경이란 그 사람이 그 사람답게 성장하고 발전할수 있게 배려하는 것이다.


+ Recent posts