[Coding study (leetcode)] Tree problems. 105, 106

image.png

이야기

Leetcode에서 트리관련 문제를 이어서 풀고 있습니다.

Leetcode와 유사한 서비스로 Hackerank도 있는데요.

Hackerank도 잘 되어있어 둘다 활용하여 코딩테스트 공부를 하고있습니다.

문제

  1. Given inorder and postorder traversal of a tree, construct the binary tree.
  2. Given preorder and inorder traversal of a tree, construct the binary tree.

아래 그림과 같이,

입력으로 inorder traversal의 결과와 postorder traversal의 결과가 주어질 때,

두 결과가 나올 수 있는 트리를 만들어야한다.

마찬가지로 105번 문제는 postorder 대신에 preorder traversal의 결과가 주어질 때, 두 결과가 나올 수 있도록 하는 트리를 찾는 것이다.

거의 동일하기 때문에 104번에 대해서만 풀이하겠다.

image.png

풀이 과정

잘 모르겠어서 Discuss를 봤다.

inorder와 postorder의 특징을 활용하라고 했다.

postorder의 특징은 left, right, 그 다음에 root 순으로 순회(traversal)한다.

그래서 postorder 순회의 마지막 순서는 root이다.

inorder 순회의 경우, left, root, right 순으로 움직인다.

그래서 root는 왼쪽 subtree와 오른쪽 subtree 사이에 존재하게 된다.

위의 특징을 알고 문제를 보면 쉬워진다.

  1. preorder 순회의 마지막 순서가 root이다.
  2. root의 value가 inorder 순회에서는 어디에 있는지 파악한다.
  3. inorder 순회에서 root의 양쪽으로 subtree이다. (아래 그림의 노란 부분이 subtree이다.)
  4. 각각 subtree에 대해서도 root가 존재한다. 1번으로 돌아간다.

image.png

위의 순서대로 풀기 위해 나는 재귀적인 방법으로 문제를 풀었다.

Top-down으로 생각했다. root에서 바닥까지!

어려웠던 점

  • preorder/inorder/postorder가 어떻게 순회하는지는 알았지만, 그 특징을 이용해야하는지는 몰랐다.
  • 이용해야한다는 것을 알고서부터는 구현을 할 수 있었다.
  • 문제를 풀고 다른사람이 푼 것을 보니 같은 방법이나 반복적으로 해결한 사람도 있었고, 같은 방법이나 좀 더 빠르게 해결한 것도 있었다.

제출

image.png


This page is synchronized from the post: ‘[Coding study (leetcode)] Tree problems. 105, 106’

[판매글] 라즈베리파이, 아두이노, 오드로이드 등등

오늘 오랜만에 방청소를 했습니다.

대학생때부터 모아놓은 센서, 마이컴, SBC (Single board computer)등이 많더군요..

청소를 하면서 목록정리를 했습니다.

이것을 어떻게 처리해야하나, 고민을 많이 했습니다.

아무리 생각해도 몇가지는 내가 전혀 안쓸거같은데

혹시 필요한사람 있을까? 생각하다 글을 쓰게됩니다.

특히, kr-dev에서는 관심있으신분들이 많을 것 같아 태그에 추가했습니다.

image.png

판매 목록

  • 라즈베리파이 1 버젼
    • 이건 기념으로 갖고있어야겠네요.
  • 라즈베리파이 B+ 2014년
  • RPINO GOGO
    • 라즈베리파이 확장보드입니다. GPIO를 쉽게 사용가능하게 해주며, 자체적으로 아두이노가 탑재되어있습니다.
  • RPUSBDISP
    • 라즈베리파이 전용 디스플레이입니다. 라즈베리파이가 아니여도 활용가능합니다.

  • J-mod-128
    • atmega 128를 쉽게 사용할 수 있게 해놓은 보드. AVR을 공부하고싶다면 추천드립니다.
  • J-mod-BT
    • Bluetooth, atmega128에서 쉽게 사용 가능, uart통신을 통해 제어

  • Odroid-C
  • Odroid-u3
    • 오드로이드는 싱글보드컴퓨터로, 라즈베리파이보다 좋은 성능의 SBC라고 생각하시면 됩니다.

  • 아두이노 우노
  • 아두이노 듀에
  • 아두이노 메가
  • 가스센서 2개
    • 가스 누출을 체크할수 있는 센서입니다.

  • IOIO OTG Board
    • 옛날에 사서 기억이 잘안나는데, 안드로이드 스마트폰과 직접 통신할 수 있는 보드였습니다.
  • 망고 보드 z1
    • cortex-m3를 공부할 수 있는 보드입니다.
  • STM32 F401 Nucleo 보드 (mbed 개발보드)
    • 음.. 웹컴파일러로 프로그램을 넣을 수 있는 보드입니다.

구매 방법

현금으로 가능하며, 스팀/스팀달러로도 받습니다.
제가 사용하던 보드들도 있고 아예 뜯지도 않은 것도 있는데요.
싸게 드리겠습니다!!
댓글달아주시면 감사하겠습니다.

오픈채팅방도 만들었습니다.
https://open.kakao.com/o/smNMd7N

감사합니다.


This page is synchronized from the post: ‘[판매글] 라즈베리파이, 아두이노, 오드로이드 등등’

[Leetcode] 102, 104. Tree problems

image.png

이야기

Leetcode에서 트리관련 문제를 이어서 풀고 있습니다.

일주일에 2개 이상 문제를 꾸준히 풀어보자라고 친구를 꼬셨습니다.

친구랑 요즘 IT 회사들은 코딩테스트를 다본다더라

준비해야한다. 이런이야기를 하다가

왜 트리문제를 풀어야되냐? 자료구조를 해야하냐? 라는 질문을 받았는데
답변을 못했습니다.

검색을 해봤는데 아래 정도의 이유들을 찾았습니다.

  • 자료구조가 프로그래밍의 기본이 된다.
    • 여러 선택지 중에 좋은 선택을 할 수 있다. 각각 자료구조마다의 특징을 알 필요가 있다.
    • 시간복잡도, 공간복잡도를 계산하는 연습을 할 수 있다.
    • 문제해결능력을 키운다.
  • 많은 코딩문제들이 자료구조는 기본적으로 알아야 잘 풀 수 있다.

다른 분들은 어떻게 생각하는지 궁금합니다.
아무튼 꾸준히 Leetcode에서 문제는 풀어볼 예정입니다.


문제

Input
image.png

  • Binary Tree Level Order Traversal - 이진 트리가 주어질 때, 각 레벨별로 노드들의 값을 반환하라.

Output - [3], [9,20], [15,7]

  • Maximum Depth of Binary Tree - 트리의 깊이를 구하라. 여기서 깊이는 root로부터 가장 멀리 떨어진 leaf까지 노드의 개수를 말한다.
    Output - 3

풀이 과정

1번 문제의 경우, queue를 사용하면 편하다는 힌트를 받았다.

Queue는먼저 들어온 입력이 먼저 나간다.

  • 큐에 남아 있는 노드들을 모두 꺼내고 레벨 벡터에 넣는다.
  • 꺼낸 노드들의 자식들을 모두 큐에 넣는다.
  • 반복한다.

2번의 경우도 힌트를 봤다.
재귀함수로 풀어라.

나는 루트의 깊이는 = 1 + max (왼쪽 자식의 깊이, 오른쪽 자식의 깊이)로 풀었다.

어려웠던 점

힌트 없이 이 방법들을 생각해내기 어려운 것 같다.
푼다면 어떻게든 풀겠지만, 복잡했을 것이다.
힌트를 받고 쉽게 풀었다.

제출

image.png


This page is synchronized from the post: ‘[Leetcode] 102, 104. Tree problems’

[후기] New Surface Pro, 태블릿 & 노트북

큰 맘 먹고 서피스 프로를 구매하였습니다.

서피스 후기에 대해 간단히 적어봅니다.

image.png
<홍보 사진, 구글 이미지 검색>

서피스 프로는 마이크로소프트에서 판매하는 2 in 1 태블릿 겸용 노트북입니다.

서피스 프로를 사기 전에는 MSI 노트북을 사용했었는데

노트북 성능에는 만족하나, 무거웠습니다.
(노트북에게 4년 이상 사용하면서 지금까지 잘 버텨줘서 고맙게 생각 ㅋㅋ)

새 노트북을 사야겠다라고 마음을 먹고
어떤 것을 살까 고민이 많았습니다.

아래는 제가 노트북을 고를 때 중요하게 생각한 것을 적어봤습니다.

중요하게 생각하는게 많죠?

  • 가벼움
  • 가격
  • 웹서핑
  • 하스스톤
  • 코딩문제 풀기
  • 스팀잇 글 작성
  • PDF Viewer, E-Book Reader

비교 대상은 아래였습니다.

  • 뉴 서피스 프로
  • 비슷한 종류의 태블릿 노트북
  • 소니 E-ink book

비슷한 종류의 태블릿 노트북이 많았지만
서피스.. 서피스..
좀 비싸더라도 2 in 1 태블릿 노트북 시장을 만든
서피스를 믿어보자 하고 샀습니다.

소니의 E-ink book도 고민했습니다.
이걸 쓰시는 분이 가져온걸 봤는데
되게 가볍고 종이에 적는 느낌이였습니다.
페이지 넘어가는게 느리긴 했습니다.

image.png

여기서 모두 만족하는 것은 뉴 서피스 프로였습니다!
서론이 길었습니다.


저는 티몬에서 구매를 하였습니다.
펜이랑 타입커버도 포함해서 팔아서 아주 좋았습니다.

image.png

지난주 토요일날 주문했는데 이번주 월요일에 서피스가 도착했습니다.

티몬 배송 빠르네요!

뜯어보니 깔끔하게 포장돼있습니다.
KakaoTalk_20180529_020517733.jpg

바로 꺼내서 켜봤습니다.
굉장히 가볍고, 화면은 선명했습니다.

KakaoTalk_20180529_020517245.jpg

서피스 펜을 빨리 써보고 싶어서
읽어야지 했던 논문을 읽어봅니다.

PDF 리더 프로그램은 Drawboard PDF를 사용하였습니다.
열심히 형광펜도 치고, 줄도 긋고, 그리고 메모도 하면서 읽어봤습니다.
잘 읽히는 거 같아요.

image.png

지금 글쓰는것도 누워서 서피스로 적고있는데
되게 편합니다!

앗! 평소에 스마트폰에 리디북스를 설치해서 책을 읽는데요
서피스에도 리디북스도 설치해봤습니다.
캡쳐가 안돼서 이미지는 못올리지만 카페에서 읽는다던가..
훌륭합니다.


서피스를 한마디로 표현하자면

터치되고 펜달린 가벼운 노트북이다.

말할 수 있을것 같네요!

여기까지 서피스 후기를 적어봤는데요.

읽어주셔서 감사합니다!


This page is synchronized from the post: ‘[후기] New Surface Pro, 태블릿 & 노트북’

[독서] 팔란티어, 옥스칼니우스의 아이들

팔란티어

이 책은 1999년 출간된 <옥스타칼니스의 아이들> 개정판.
2011년, 백주 대낮에 국회의원이 괴한에게 살해당하는 사건이 발생한다. 수사팀의 형사 장욱은 친구 원철로부터 첨단 온라인 게임 ‘팔란티어’ 속 캐릭터와 괴한이 비슷하다는 말을 듣고, 단서를 찾아달라고 부탁한다. 그러나 무의식적으로 조종하는 원철의 게임 캐릭터 ‘보로미어’가 예상에 없던 돌출 행동을 일삼는다.
탄탄한 이과적 교양을 바탕으로 스피디한 문장과 탄탄한 구성이 돋보이는 작품으로서, 놀라운 흡인력과 당시 시대를 뛰어넘는 상상력으로 게임 판타지의 전설적인 작품으로 불리운다.
bridge - 소개글

image.png


팔란티어라는 책을 아시나요?

이 책을 처음 읽었을 때는 고등학생 때였습니다.

판타지 소설을 좋아하는 저는 읽자마자 빠져들었고 재밌게 읽었습니다.

그리고 E-Book이 나왔을 때 리디북스로 전권 구매하였습니다.

최근에 팔란티어가 생각나서 이 책을 다시 읽어봤습니다.

제가 생각한 이 책의 재미는 4가지입니다.

  1. 잘 읽힌다.
  2. 추리 소설 같다. 범인이 누굴까? 어떻게 그럴 수 있던거지?
  3. 사랑 이야기.. 슬프면서 재밌다.
  4. 중간중간 재밌는 이야기가 있다. (순경 이야기, 어렸을 때 장난친 이야기, 첫사랑 이야기 등)
  5. 묘하게 현실적이다. 충분히 일어날 수 있는 일이다.
  6. 설명, 묘사가 재밌다.

이 소설을 보면서 들었던 생각은 이랬습니다.
사람은 다 이기적이다. 나 또한 마찬가지다.
자신이 원하는 것을 하기 위해 남들에게 피해주는일도 흔하다.
하지만, 순수하게 돕고자 하는 사람도 있고
순수한 사랑도 있다.
어떤 사람이 나쁘다고 이 세상이 나쁜건 아니다.

책을 보다가 재밌다 싶은것을 기록해봤습니다. (리디북스 공유 기능을 이용.)

image.png

사건의 시작은 전과 기록도 없던, 운동도 전혀 안했던 학생이 진검을 기가막히게 써서 국회의원을 살인하게 됩니다.

image.png

주인공 원철은 IT 개발자, 프리랜서입니다. 나이는 28로 나옵니다.
원철은 노바 시스템이라는 회사 소속입니다. 이 회사는 여러 프리랜서들을 모아서 일을 합니다.
봤을 때 되게 괜찮은 시스템이다. 요즘에 이런 회사가 있나? 궁금하군요.

image.png

저한테 이 소설은 세드엔딩이였습니다.
혜란이 선택한 결정을 이해하지만, 저라면 그런 결정을 하지 않았을텐데..
행복하게 살 수 있었을텐데..
아쉬움이 많이 남았고
위의 혜란의 말이 인상깊었습니다.


이제껏 이 책을 반복하여 많이 읽었지만
표현하기가 어렵군요.

게임 소설, 판타지 소설로 분류가 되어
이 소설이 가볍고, 킬링타임용으로 생각될 수 있습니다.
이 책은 인간관계, 사랑이 뭘까?, 재택근무의 꿈, 결혼 등
여러가지를 생각해보게 해주는 책이였습니다.

한번쯤 읽어볼만한 책입니다!


This page is synchronized from the post: ‘[독서] 팔란티어, 옥스칼니우스의 아이들’

Leetcode - Social platform for preparing technical interview

Leetcode

Social platform for preparing technical interview


Screenshots

let1.PNG
leet2.png
let3.PNG
leet4.png

Hunter’s comment

LeetCode is a social platform for preparing technical interviews for companies in the IT industry.

You can solve leetcode problem on website and visual studio code.

Level up your coding skills and quickly land a job.

This is the best place to expand your knowledge and get prepared for your next interview.


https://leetcode.com/?ref=steemhunt


Contributors

Hunter: @jacobyu



Steemhunt.com

This is posted on Steemhunt - A place where you can dig products and earn STEEM.
View on Steemhunt.com

This page is synchronized from the post: ‘Leetcode - Social platform for preparing technical interview’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×