bestowing의 등록된 링크

 bestowing로 등록된 네이버 블로그 포스트 수는 47건입니다.

[42 SEOUL] 본과정에 관한 이야기 (1) - 커리큘럼 [내부링크]

본과정에 관한, 첫번째 이야기이전 글에서 예고했던대로, 본과정에 대한 첫번째 이야기는 무엇을 배우는가에 관한 이야기입니다.그전에 42서울에서는 어떻게 배우는가가 궁금하신 분이 있을 수 있습니다.전체적으로 1개월 집중교육과정 라피신에서 배우는 방식과 같습니다.동료학습과 협력이라는 키워드로 요약할 수 있는데, 구체적으로는 프로젝트를 등록하고,요구사항을 만족시키고, 동료에게 평가를 받은 뒤, 기계 채점을 통해 최종 점수를 받고 통과/실패가 정해지는 방식입니다.큰 틀은 라피신과 동일하니 어떻게 배우는가가 궁금하시다면 라피신 후기를 참고하시길 바랍니다.42서울 커리큘럼42서울의 커리큘럼은 아래와 같습니다........

[42 SEOUL] 본과정에 관한 이야기 (2) - 동아리 [내부링크]

본과정에 관한, 두번째 이야기본과정에 관한 두번째 이야기는 동아리입니다.본 포스터에서는 스터디나 소모임을 통틀어 동아리라고 칭하겠습니다42서울에는 여러 가지 동아리가 있습니다. 모두 본과정 카뎃들이 각자의 관심사에 따라 자발적으로 모인 모임입니다.동아리 종류에 따라 주기적으로 만나 놀거나, 공부하거나, 이야기를 나누는 등, 여러 활동을 하고 있습니다.대학교에서 하는 동아리 활동과 매우 비슷하다고 생각하시면 됩니다.아무튼, 정말 자유로운 분위기라서 언제든지 만들고 없애고 할 수 있습니다.42서울 동아리그래서 42서울에는 어떤 동아리들이 있는지 알아보겠습니다.물론, 제가 42서울에서 활동하는 모든 동아.......

[42 SEOUL] 온라인 체크인 미팅 [내부링크]

목표: 42서울 교육과정을 진행하면서 느낀 것을 기록한다.온라인 테스트 이후 과정온라인 테스트 이후 과정을 진행하기 위해서는 체크인 미팅 등록에 성공해야 한다.나는 테스트에 통과했으나 체크인 미팅 등록이 이미 마감되어있어서 한동안 기다리다가2/3기 미팅 오픈 메일을 보고 후딱 달려가서 신청한 기억이 있다.결국 나는 2기 2차 체크인 미팅 신청에 성공했다. 이때는 신청이 좀 널널했었다.참고로 2021년 체크인 미팅 신청 일정은 여기에서 자세히 확인할 수 있다.코로나 일정에 따라 바뀔수 있다고 하니 자주 들어가서 확인하길 바란다.라피신 한달보다 체크인 미팅 등록하는게 더 어려울지도 모른다.500명 선착순이니까 알.......

[42 SEOUL] La Piscine 1주차 후기 [내부링크]

Ma Piscine est...2020년 7월 27일 월요일 ~ 8월 21일 금요일 (4주)한없이 연기될 것만 같던 라피신이 어느샌가 시작되고,하루하루 코딩에 매진하다보니 4주가 어느샌가 지나버리고,코로나때문에 차일피일 미루어지던 Final Exam도 어느샌가 종료되었습니다.그래서 지금은 다 끝났네요... 본과정 선발 결과만 기다리고 있습니다.저도 다른 분들처럼 매일매일 후기를 적고 싶었는데,그럴시간에 코드 한줄이라도 더 적는게 낫지 않나 하는 얄팍한 생각때문에라피신이 끝난 지금에야 글을 올립니다.1주차 후기1일차는 정말 멘붕의 연속이었다.낯선 공간에 낯선 사람들만 있는 곳에 가려니 너무 긴장됐다.지하철에서 계속 피신 후기만 검색해.......

[42 SEOUL] La Piscine 2주차 후기 [내부링크]

아래 포스트에서 이어지는 글입니다.https://bestowing.blog.me/2220949778932주차 후기8일차(월)는 클러스터가 열리는 시각에 맞춰 아침 일찍 출석했다.갑자기 학습 의욕이 불타올라서 일찍 출근한거라면 좋겠지만... 그건 아니고,그 이유는 내가 동료 평가를 할때 뭔가 실수를 했기 때문이다.처음에는 그게 실수인지도 모르고 한창 평가를 하고 있었는데목요일에 자고 일어나보니 내 인트라 계정이 잠겨있어서 내가 실수를 했다는 것을 깨달았다...아무튼 그 실수를 번복하지 말라는 의미에서 어떤 소소한 벌칙이 주어진다.그리고 그 벌칙이 무엇인지는 난 알려주지 않을 것이다... 모르는게 더 재밌기 때문이다사실 다른분들 후기 찾.......

[42 SEOUL] La Piscine 3주차 후기 [내부링크]

아래 포스트에서 이어지는 글입니다.https://bestowing.blog.me/2221028185923주차 후기15일차(월)는 클러스터에 출근해서 열심히 공부했다.이쯤되면 슬슬 포기하시는 분들이 생긴다.이해한다... 라피신은 사람의 멘탈을 깨부수도록 디자인되었기 때문이다.시스템적으로 너의 정신력을 테스트하겠다는게 눈에 보인다.아마 의도적으로 그렇게 디자인 했을 것이다.예를 들어, 대학교 컴공 수업을 듣는데 교수님이 어떤 과제나 프로젝트를 내주신다고 생각해보자.그럼 내가 그 프로젝트를 완벽하게 하지 못해도 보통은 부분점수를 부여하기 마련이다.1번문제부터 10번문제까지 10점씩. 이런식으로?그리고 뭘 해야하는지 최대한 명확하게 알려.......

[42 SEOUL] La Piscine 4주차 후기 + Final Exam 후기 [내부링크]

아래 포스트에서 이어지는 글입니다.https://bestowing.blog.me/2221030633894주차 후기2020.08.31(Mon) ~ 09.04(Fri)22일차(월)부터는 클러스터에 갈 수 없었다.이전 주차 후기에서 언급했듯 사회적 거리두기가 2단계로 격상되었기 때문이다.따라서 4주차는 내내 원격 접속으로 공부해야 했다.원격 접속에는 두 가지 방식이 있었다.vnc 방식과 ssh 방식이다.vnc 방식은 쉽게 말하면 GUI 환경에서 컴퓨터를 직접 조작하는 것처럼 원격으로 통신하는 방식이고,ssh 방식은 컴퓨터를 터미널로만 조작하는 원격 통신 방식이다.정확한 정의는 나도 잘 아는게 아니라서 느낌만 알고 넘어가자.당연히 vnc 방식이 더 사용하기엔 편하다.그런데 엄.......

[42 SEOUL] 본과정생이 쓴 라피신 Q&A [내부링크]

목표: 42서울 교육과정을 진행하면서 느낀 것을 기록한다.본과정 합격 후, Q&A앞선 포스트에서 밝혔듯, 저는 2기 2차 라피신을 마치고 본과정에 합격하여2020년 09월 28일 월요일부로 카뎃이 되었습니다그리고 2기 2차 피신을 진행하면서 느낀 그 경험을 후기글로 풀어냈습니다.( 사실 피신 후기에는 보안상 빠진 내용도 많습니다. 하지만 직접 경험하시는게 가장 재밌어요 !)[42 SEOUL] La Piscine 1주차 후기https://bestowing.blog.me/222094977893[42 SEOUL] La Piscine 2주차 후기http://bestowing.blog.me/222102818592[42 SEOUL] La Piscine 3주차 후기http://bestowing.blog.me/222103063389[42 SEOUL] La Piscine 4주차.......

[42 SEOUL] 본과정에 관한 이야기 (시작) [내부링크]

본과정에 관한 이야기들.안녕하세요c, 저는 42SEOUL 카뎃입니다.본과정에 들어온지는 약 두 달정도 되어갑니다. (2020-11-23 기준)이번 포스트에서는 본과정에 관한 이야기를 다루고자 합니다.본과정에 관한 이야기를 다루자고 마음먹은 이유는,저도 42서울에 들어오기 전 많은 고민을 했었기 때문입니다.42서울에 들어오면 무엇을 배울 수 있을까 ?42서울에서 무엇을 얻어 갈 수 있을까 ?42서울은 2년을 투자할 만한 가치가 있을까 ?하는 것들이었죠. 그 고민이 담긴 글은 아래에 있습니다.https://blog.naver.com/bestowing/221888226188사실 제가 본과정에 들어오고 나서 이미 이 질문에 대한 주관적인 답변을 드린 적이 있습.......

[42 SEOUL] 매일경제에서 인터뷰를 했습니다 [내부링크]

살다보니 이런 경험도 해보네요.이런 기회를 얻게된 것도 42서울 덕분입니다배부른 소리지만 42서울이 주제라서 제 이야기가 많이 짤린게 아쉽네요....ㅋㅋㅋ42서울에 대한 글을 굉장히 잘 써주셔서 (자랑도 할 겸) 가져와봤습니다.https://www.mk.co.kr/news/it/view/2020/11/1210101/(불문과에 재학중인 그분이 바로 저입니다...)

오토마타 이론 공부 (16) - 스택으로 인식하는 PDA와 마지막 상태로 인식하는 PDA [내부링크]

저번 포스트에서, 우리는 푸시다운 오토마타가 어떤 과정을 거쳐서 입력을 받아들이는지, 혹은 받아들이지 않는지 알아보았다.이제 푸시다운 오토마타가 입력을 받아들이는 두 기준이 본질적으로 동등한 것임을 알아보자.PDA가 입력을 받아들이는 기준저번 포스트에서, 푸시다운 오토마타가 입력을 받아들이는 기준이 2가지라고 언급했다.첫번째, 입력이 끝난 후에 마지막 상태에 도착한 경우이고,두번째, 입력이 끝난 후에 스택에 시작 심볼 Z0만 남은 경우이다.첫번째 기준은 DFA나 NFA와 비슷하게, 마지막 상태에 도달한 경우 받아들여지며, 스택에 무엇이 남아있든 중요하지 않다.두번째 기준은, 입력이 끝난 후에 스택이 비어있는 경.......

[42 SEOUL] 42서울이란 + 온라인 테스트 합격 [내부링크]

목표: 42서울 교육과정을 진행하면서 느낀 것을 기록한다.2020년 12월 2일에 1만 조회수 달성하여 내용을 최신화하였습니다.지원 배경컴퓨터공학을 복수전공하는 문과생으로서, 나는 항상 코딩 실력에 대한 강박이 있었다.C언어를 처음 배운게 군대있을때니까, 코딩 경험이 원전공생보다 대략 2~3년은 뒤쳐졌다는 생각 때문이었다.생각해보면 꼭 코딩 실력에 대한 강박뿐만 아니라, 뒤쳐진만큼 뭐라도 많이 해야한다는 막연한 불안감도 있었다.그 불안감 때문에 개발자로 취업하기 위해 필요한것들을 찾아다녔다.(나중에 내가 선호하는 기업 취직에 성공하면 따로 정리해서 포스팅해야겠다) 그렇게 불안에 떨면서, 스펙이 될 만한 것들을 찾.......

오토마타 이론 공부 (17) - 푸시다운 오토마타의 세 가지 유형(DPDA, NPDA, Extended PDA) [내부링크]

저번 포스트에서, 푸시다운 오토마타가 입력을 받아들이는 두 기준이 본질적으로 동등한 것임을 알아보았다.이제 NPDA(Non-deterministic PDA)에 대해서 알아보자.푸시다운 오토마타(PDA, Pushdown Automata)푸시다운 오토마타란, 유한 오토마타의 확장으로, 스택(Stack) 자료구조가 추가된 유한 오토마타이다.스택 자료구조가 추가되었기 때문에, 입력 심볼과 스택의 탑에 따라 상태간 전이가 일어난다.PDA의 유형푸시다운 오토마타(PDA)는 유한 오토마타(FA)의 확장이다.유한 오토마타에서 전이함수에 따라 유형을 나눌 수 있었던 것처럼(DFA, NFA, ε-NFA),푸시다운 오토마타에서도 전이함수에 따라 유형을 나눠볼수 있다.바로 DPDA(Det.......

오토마타 이론 공부 (18) - 푸시다운 오토마타와 문맥 자유 언어의 동질성 [내부링크]

우리는 지금까지 문맥자유언어와 푸시다운 오토마타에 대해서 알아보았다.https://bestowing.blog.me/221753049407https://bestowing.blog.me/221791788375이번에는 그 둘의 관계에 대해서 더 알아보고자 한다.푸시다운 오토마타와 문맥 자유 언어푸시다운 오토마타와 문맥 자유언어의 동질성에 대해서 알아보기 전에, 우리는 유한 오토마타와 정규 언어, 정규 표현에 대해서 알아본 적이 있었다. 그리고 아래 같은 그림을 통해, 정규언어는 정규 표현으로 생성 가능하고, 유한 오토마타로 정규언어를 확인할 수 있다고 말한 바 있다.그리고 정규표현과 유한오토마타는 동등한 것임을 보였다.또한, 아래와 같이, 푸시다운 오토.......

오토마타 이론 공부 (完) - 문맥자유언어의 특성 [내부링크]

문맥자유언어의 특징에 대해 알아보자.문맥자유언어도 정규언어와 마찬가지로, 어떤 규칙성을 가지고 있는 언어인데, 그 규칙은 그 언어를 표현하는 푸시다운 오토마타에 의해 받아들여지는가, 안 받아들여지는가로 확인 가능하다. 또한, 문맥자유문법으로나타날 수도 있다.이번에도 정규언어와 마찬가지로 어떤 언어가 문맥자유언어인가, 아닌가를 결정하는 방법에 대해서 알아볼 것이다.문맥자유언어에서도 마찬가지로 펌핑 보조정리를 적용하게 된다.정규언어에서는, '모든 정규언어는 펌핑 보조정리를 만족한다, 따라서 펌핑 보조정리를 만족하지 못하는 언어는 정규언어가 아니다'는 것을 보이기 위해 정규언어는 모두 펌핑.......

[Android] Parcelable이란? [내부링크]

글 구성1. 정의 (Parcelable이란)2. 사용하는 이유3. 사용 예시 3-1. 인스턴스 하나 전달 3-2. ArrayList로 여러 인스턴스 전달4. 심화 정보2020-06-28 기준으로 작성한 글입니다.정의Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a non-null static field called CREATOR of a type that implements the Parcelable.Creator interface.Parcelable이란, 인스턴스가 Parcel에 의해 쓰여지고 복구될 수 있는 클래스를 위한 인터페이스를 말한다. Parcelable 인터페이스를 구현하기 위해서 반드시 CREATOR라는 필드를 구현해야 한다.......

Visual Studio code에서 Java 개발 환경 구축하기 [내부링크]

Visual Studio code(이하 vscode)는 가벼우면서 다양한 확장 기능을 제공하는 소스 코드 편집기이다.물론 이클립스같은 자바를 위한 IDE가 있지만, 나는 어떤 언어든 vscode로 개발하는 것을 선호한다.또 입문자들이 자바 프로그래밍을 연습할때는 모든 편의성을 미리 다 갖춰놓은 것보단 가볍게 시작하는게 좋다고 생각한다.따라서 오늘은 vscode에서 JAVA 개발환경을 구축해보기로 한다. OS는 Window 10이다.1. 자바 설치여기서 설치하는 자바라 함은, 자바 프로그래밍을 위해 개발자에게 필요한 JDK(Java Development Kit)을 의미한다.JDK는 단순히 설명하자면 자바 플랫폼 프로그래밍에 사용되는 소프트웨어 개발환경이라고 정의할 수 있.......

[백준] 1463번 - 1로 만들기 [내부링크]

목표: 소프트웨어 역량 테스트를 준비하면서 푼 문제를 리뷰한다. 해결 과정결과적으로, 2가지 해결 방법이 있다.1. BFS(Breadth first search)와 자료구조 큐를 활용하여 해결하기2. DP(Dynamic programming) 기법으로 해결하기 1. BFS(Breadth first search)와 자료구조 큐를 활용하여 해결하기먼저, 내가 푼 코드가 아니라서 출처를 남긴다.출처: https://blockdmask.tistory.com/2571번 풀이의 핵심은 자료구조 큐를 활용하는 것이다.큐에 숫자 n과 n에서 1까지 가는데 걸리는 연산 횟수를 쌍으로 저장하는 것이다.따라서 먼저 큐에 (n, 0)을 넣고 시작한다. 1) 큐에서 숫자 n을 뺀다. 누적 연산 횟수 i도 뺀다.1-1) 만약 n이 1이.......

[백준] 14889번 - 스타트와 링크 풀이 [내부링크]

목표: 소프트웨어 역량 테스트를 준비하면서 푼 문제를 리뷰한다. 해결 과정내가 해결하지 못한 문제.풀이는 이곳을 참고했다.https://velog.io/@skyepodium/백준-14889-스타트와-링크풀이 과정은 위의 링크에 워낙 잘 정리되어 있으니, 참고하면 될 것 같다.이래서 A형 붙을수 있을까... 싶다ㅜ 배울 점1. 문제 쪼개기: 세부적인 문제로 나누기2. 백터를 활용한 순열 풀이3. 4바이트 int 자료형의 최댓값과 최솟값 암기하기최댓값 (21 4748 3647)최솟값은 -(최댓값+1)INT32_MAX, INT32_MIN 써도 되지 않나?4. 시/공간 복잡도 계산하기 문제 출처백준 사이트https://www.acmicpc.net/problem/14889

오토마타 이론 공부 (14) - 푸시다운 오토마타 上 (PDA, Pushdown Automata) [내부링크]

목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에서, 문맥 자유 문법을 단순화하는 과정과, 촘스키 정규 형식 혹은 촘스키 노말 폼을 만드는 것에 대해서 알아보았다.이번 포스트에서는 문맥 자유 언어를 인식하는, 푸시다운 오토마타에 대해서 알아보자.푸시다운 오토마타(Pushdown Automata)의 구성우리는 이미 유한 오토마타에 대해서 알고 있기 때문에,그 확장격인 푸시다운 오토마타를 이해하는 것은 어렵지 않다.+ 혹시 유한 오토마타에 대해서 모르는 사람이 있다면, 이곳을 참고하자.우리가 알아본 바에 의하면, 유한 오토마타는 5가지로 구성되어 있었는데, 아래와 같다.각각의 구성 요소를 대략적으로 언급하자면,Q는.......

오토마타 이론 공부 (15) - 푸시다운 오토마타 下 (PDA, Pushdown Automata) [내부링크]

목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에 이어서, 푸시다운 오토마타의 전이함수에 대해서 좀더 알아보도록 하자. 푸시다운 오토마타(PDA)푸시다운 오토마타란, 유한 오토마타의 확장이다.유한 오토마타가 정규 언어(regular language)를 인식하는 인식기였다면,푸시다운 오토마타는 문맥 자유 언어(context-free langauge)를 인식할 수 있다.+ 정규언어와 문맥 자유 언어의 관계는 이곳에서 확인할 수 있다.유한 오토마타가 5가지 요소로 구성되었던 것과 다르게,푸시다운 오토마타는 2가지 요소가 추가되어 7가지 요소로 이루어져 있다.자세한 설명은 저번 포스트에서 다뤘으므로 생략하겠다. 푸시다운 오토마타의 전.......

[백준] 2309번 - 일곱 난쟁이 [내부링크]

목표: 소프트웨어 역량 테스트를 준비하면서 푼 문제를 리뷰한다. 해결 과정보자마자 완전탐색 문제라는 생각이 들었다.나는 재귀를 활용해서 9명중에서 키의 합이 100이 되는 7명을 찾는 방식으로 해결했다.다만, 다른 사람들 코드를 참고하다보니 9명의 키를 모두 더한 값에서 2명의 키를 뺐을때 100이 되는 케이스를 찾는 방법도 있었다.즉, 합할 7명을 찾냐, 뺄 두명을 찾냐의 차이인데 두번째 방법이 더 좋은 것 같다.뺄 사람을 찾는 방식으로 다시 풀어봐야겠다. 해결 코드합할 사람을 찾는 방식이다.https://github.com/bestowing/problemSolving/blob/master/code/2309.cpp 문제 출처https://www.acmicpc.net/problem/2309

[C++] 배열 초기화 [내부링크]

목표: C++ 언어를 사용하면서 알아둬야 할 문법을 정리한다.C++에서 배열 초기화하기소프트웨어 역량 테스트를 준비하면서 여러 문제를 풀어보고 있다.코딩테스트에서는 보통 변수를 전역으로 선언하기 때문에 배열을 직접 초기화할 일이 많지는 않지만,한 번 실행 후 테스트 케이스가 여러개인 경우, 배열을 매 케이스마다 초기화할 필요가 있다.지금까지 내가 사용한 방식은 아래와 같다.2차원 배열의 경우,이 방식을 사용하는데 가장 큰 단점은, 타이핑하는데 불필요하게 긴 시간이 소요된다는 것이다.시간제한이 있는 코딩 테스트에서는 이렇게 길게 작성하는것 자체가 시간 낭비다.물론 직관적이고 사용하기 쉽다는 큰 장점이 있다.검.......

[C++] 순열과 조합 [내부링크]

목표: C++ 언어를 사용하면서 알아둬야 할 문법을 정리한다.C++에서 순열과 조합 구현하기소프트웨어 역량 테스트를 준비하면서 여러 문제를 풀어보고 있다.이번에는 순열과 조합을 구현하는 방법을 포스팅해보려고 한다.참고로 순열과 조합이란, 서로 다른 N가지 수 중에서, M가지를 고르는 경우의 수를 말한다.이때 순열은 순서가 중요하고, 조합은 순서가 중요하지 않다.예를 들어,1,2,3,4,5,6이라는 서로 다른 6가지 수 중에서 중복되지 않게 2가지를 고른다고 해보자.순서가 있는 순열은(1,2), (1,3), (1,4), (1,5), (1,6) (2,1), (2,3), (2,4), (2,5), (2,6)...(6,1), (6,2), (6,3), (6,4), (6,5)의 경우의 수가 나온다. 즉, (1,6)과.......

안드로이드 공부 2일차 [내부링크]

이번 포스트에서는위 계층도에서 TextView 클래스를 알아보자.텍스트뷰 TextView먼저 TextView 클래스란, 화면에 텍스트를 표시할 수 있는 객체이다.텍스트를 표시하는게 목적이니까, 당연히 표시할 텍스트를 담는 text라는 속성이 존재한다.또한 색상을 나타내는 textColor크기를 나타내는 textSize글꼴을 나타내는 typeface기울임, 굵게 등 글자의 스타일을 나타내는 textStyle글이 길어져도 강제로 한 줄로 제한하는 singleLine속성이 있다.참고로, 자바 코드상에서 xml 객체들의 속성을 변경해주는 것도 가능하다.아래와 같은 메소드를 잘 활용하면 된다.텍스트뷰 밑에는 에디트 텍스트 EditText 클래스와 버튼 Bu.......

안드로이드 공부 3일차 [내부링크]

이번 포스트에서는 컴파운드버튼 CompoundButton과 이미지뷰 ImageView 에 대해서 알아보자.컴파운드버튼 CompoundButtonCompundButton 클래스에 대해서 알아보자.컴파운드 버튼은 버튼의 하위 클래스로써, 버튼의 특성을 상속받으면서 더욱 다양한 기능을 가진 버튼을 제공한다.예를 들면, 사용자가 두 가지 이상을 동시에 체크할 수 있는 체크박스,두 가지 이상의 선택지 중에서 한 가지만 체크할 수 있는 라디오 버튼,토글 버튼과 스위치는 켜고 끄는 역할을 한다고 생각하자.느낌만 알아두고, 필요할때 더 자세히 알아보도록 하자.이미지뷰 ImageView이제, TextView와 다른 이미지뷰 ImageView에 대해서 알아보자.이미지뷰는, 말 그대.......

안드로이드 스튜디오 github 연동하기 [내부링크]

많은 시행착오 끝에,이 동영상으로 가장 깔끔하게 깃허브와 연동에 성공했다.https://www.youtube.com/watch?time_continue=245&v=QBQIOuV3vnM&feature=emb_logo

오토마타 이론 공부 (11) - 파스 트리(Parse Tree) [내부링크]

#오토마타 #형식언어 #문맥자유언어 #문맥자유문법 #파스트리 #파싱트리 #Parse_Tree #Parsing_Tree목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에서, 문맥자유언어와 문맥자유문법에 대해서 알아보았다.이번에 알아볼 파스 트리(Parse Tree)는 문맥자유문법에서 꽤 중요하게 다뤄지는 개념이다.파스 트리 개념이 나중에 배울 컴파일러 이론에 활용되기 때문이다.파스 트리 개념 자체는 어렵지 않지만, 그만큼 중요하기 때문에 확실히 알아두도록 하자. 파스 트리란? 파스 트리(parse tree), 파싱 트리(parsing tree), 어원 트리(derivation tree)는 올바른 문장에 대해 트리 구조로 나타낸 것을 말한다.파스 트리란, 어떤 문.......

오토마타 이론 공부 (12) - 모호성(Ambiguity) [내부링크]

#오토마타 #형식언어 #문맥자유언어#문맥자유문법 #모호성 #문맥_자유_문법의_모호함 #모호한_문맥_자유_문법목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에서, 우리는 파스 트리의 개념과, 파스 트리를 그리는 방법을 알아보고,파스 트리와 유도, 재귀적 추론의 동등성에 대해서 알아보았다.이번 포스트에서는 문맥 자유 문법에서의 모호성(Ambiguity)에 대해서 알아보자.문맥 자유 문법에서의 모호성(Ambiguity in CFG)In computer science, an ambiguous grammar is a context-free grammar for which there exists a string that can have more than one leftmost derivation or parse tree, while an unambiguous gra.......

오토마타 이론 공부 (13) - 문법 단순화와 촘스키 정규 형식 [내부링크]

#오토마타 #형식언어 #문맥자유언어 #문맥자유문법 #정규형식 #문법단순화 #Chomsky_normal_form #촘스키_노말_폼목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에서, 어떤 문맥 자유 문법이 모호하다는 의미에 대해 다루었다.오늘은 어떤 문맥 자유 문법을 단순화하는 방법과, 정해진 형식(Chomsky normal form)에 맞게 변환하는 과정을 알아볼 것이다. 문맥 자유 문법의 단순화(Simplification of CFG)어떤 문맥 자유 문법이 있다고 할때, 이 문법에 필요없는 요소를 찾아서 제거하는 과정은,다음 3가지 과정으로 이루어진다.* 쓸모없는 심볼(useless symbols) 제거하기* ε-생성 규칙(ε-productions) 제거하기* 유닛 생성규.......

[백준] 14502번 - 연구소 풀이 [내부링크]

목표: 소프트웨어 역량 테스트를 준비하면서 푼 문제를 리뷰한다.해결 과정처음에 방향을 잘못 잡아서 해결하는데 꽤 오래 걸린 문제였다. 결과적으로,1. 벽을 세울 수 있는 모든 경우의 수를 찾는다.2. 한가지 경우에서 바이러스가 퍼진 결과를 계산한다.3. 안전 영역을 계산한다.4. 현재까지의 최대값과 비교한다.5. 모든 경우의 수에 대해 2~4를 반복한다.의 해결 과정을 거쳤다.나는 1번, 벽을 세우는 모든 경우의 수를 찾는 것에서 조금 막혔다.그래서 결국 찾아낸 방법이벽 하나를 세울때 배열의 시작 인덱스에서 마지막까지 1차원 배열처럼 접근하는 방식이었는데,전역으로 최대 사이즈 8*8만큼 선언하면 매우 골치가 아파서지역 변.......

오토마타 이론 공부 (6) - 정규 표현식 [내부링크]

#오토마타 #형식언어 #정규언어 #정규표현식 #정규표현목표: 학교 수업에서 배운 내용을 복습한다. 지금까지의 내용 정리우리는 지금까지 유한 오토마타가 어떤 언어가 정규 언어(regular language)인지 인식하는 기계임을 배웠다. 이 유한 오토마타에는 3가지 유형이 있으며, 각 유형간의 능력은 동일하고, 이는 3가지 유형이 동등하기 때문이라고 했다.우리는 오토마타 이론 공부 (1)에서 형식언어를 이해하는데 필요한 개념을 정리한 바 있다. 또한 언어에 대한 정의를 내렸는데, 언어란 어떤 알파벳 ∑ 클레이니 스타의 부분 집합인 것을 의미한다고 했다. 언어의 정의를 다시 한번 살펴보자. 각 형식 언어에는 그 언어에서 사용하는 문.......

오토마타 이론 공부 (7) - 정규 표현식과 유한 오토마타의 동질성 [내부링크]

#오토마타 #형식언어 #정규언어 #정규표현식 #정규표현목표: 학교 수업에서 배운 내용을 복습한다.저번 포스트에서, 정규언어와 정규 표현, 유한 오토마타의 관계를 보이고, 정규 표현과 유한 오토마타는 동등한 것이라고 했다.이번 포스트에서는, 정규 표현과 유한 오토마타의 동질성에 대해 다뤄볼 것이다.정규 표현과 유한 오토마타의 동질성(Equivalency)정규표현과 유한 오토마타가 동등하는 것을 보이기 위해, 다음 두가지를 보일 필요가 있다.1) 모든 정규 표현식에 대해 동등한 유한오토마톤이 존재한다.2) 모든 유한 오토마톤에 대해 동등한 정규표현식이 존재한다.따라서, 정규표현 R을 그것과 동일한 ε-NFA로 바꾸는 과정.......

오토마타 이론 공부 (8) - 정규언어의 특성1 [내부링크]

#오토마타 #형식언어 #정규언어 #정규언어특성 #펌핑보조정리 #펌핑렘마목표: 학교 수업에서 배운 내용을 복습한다.이번 포스트에서는 정규언어의 특성에 대해 알아볼 것이다. 우리가 지금까지 배운 바에 의하면, 정규언어란 어떤 규칙을 가지고 있는 언어였다. 그 규칙은 유한 오토마타에 의해 받아들여지는지 아닌지로 확인가능하고, 정규표현식으로도 나타낼 수 있다.그렇다면 우리가 어떤 언어를 발견했을때, 유한 오토마타를 그릴수 있는지 아닌지가 정규언어인지 아닌지를 판단하는 방법이라는 것인데, 우리가 유한 오토마타를 그릴 수 없을때 이런 의문이 생긴다. 1) 사실 정규 언어인데, 우리가 잘못 생각해서 그리지 못했다. 2).......

오토마타 이론 공부 (9) - 정규언어의 특성2 [내부링크]

#오토마타 #형식언어 #정규언어 #정규언어특성 #불필요상태 #DFA최소화 #동등한상태 #동등한DFA #표채우기알고리즘목표: 학교 수업에서 배운 내용을 복습한다.이번 포스트에서는 계속해서 정규언어의 특성에 대해서 알아볼 것이다. 우리가 DFA를 디자인하면서, 상태의 개수를 불필요하게 많이 디자인하는 경우가 생길 수 있다. 이번 포스트에서는, 불필요한 상태를 포함하는 DFA를, 같은 정규언어를 받아들이면서, 상태의 개수를 최소화시키는 과정에 대해서 알아볼 것이다.※ 저번 포스트에서 잘못 작성한 부분을 발견하여 수정했다. 마지막 상태로 갈 수 없는 상태는 불필요한 상태가 아니다.접근할 수 없는 상태와 동등한 상태 저번 포.......

오토마타 이론 공부 (10) - 문맥 자유 언어 [내부링크]

#오토마타 #형식언어 #문맥자유언어 #문맥자유문법목표: 학교 수업에서 배운 내용을 복습한다.지금까지, 우리는 형식언어의 한 종류인 정규언어(regular language)에 대해 알아봤다.정규언어는 촘스키 위계에서 가장 작은 부분을 차지하는 언어 계층이고, 유한 오토마타로 인식 가능했다.이제부터 정규 언어보다 한 단계 높은 계층, 문맥 자유 언어(Context Free Langauge)에 대해서 알아볼 것이다. 문맥 자유 언어(Context Free Languages)문맥 자유 언어는 정규 언어(regular langauge)의 확장이다. 즉, 문맥 자유 언어는 정규 언어가 표현할 수 있는 언어를 포함하여 더 많은 언어를 표현할 수 있다는 것을 의미한다.문맥 자.......

[안드로이드 공부] 1. 안드로이드의 구조와 뷰(View) [내부링크]

목표: 책과 인터넷 자료를 통해 공부한 내용을 복습한다.안드로이드의 구조안드로이드는 두 가지로 구성된다.화면을 담당하는 xml 파일과기능을 담당하는 java 파일.xml은 eXtensible Markup Language의 줄임말이다.결국 근본은 마크업 언어이기 때문에, 내가 공부했던 html과 구조는 흡사하다.안드로이드 스튜디오 상에서, 아래 화면이 나오는데html을 편집할때도 그랬듯, 기본적으로 텍스트 편집을 통해서 편집하는 방식이지만,아래사진처럼 안드로이드 스튜디오에서 제공하는 편의기능, 디자인 모드가 있다.xml을 잘 모르는 사람도 쉽게 편집할 수 있도록 Design 모드를 제공하는 것이다.같은 파일을 편집하는 방식을 두 개 제공.......

HTML파일에서 php 코드 인식 불가 [내부링크]

[증상]현재 ubuntu 18.04에 APM를 설치해서 웹개발을 공부하고 있는데,파일 확장자를 php로 하면 php로 작성하는 코드 인식이 잘 된다.하지만 확장자를 html로 하면 php코드는 인식이 안되는 문제가 발생한다.[발견]비쥬얼 스튜디오 코드에서 keyword에 컬러링도 안되고, 크롬으로 html을 열면 php코드 인식이 하나도 안된 것을 발견했다.[해결]처음에는 php문제가 아닌가 싶었는데, 검색 결과 웹서버(apach2) 설정을 건드려줘야 함을 알게 되었다.아파치 설정 파일인 apache2.conf는 밑의 링크에서 찾았다. (제타위키)http://bitly.kr/ir1u5a그러나 apache2.conf에서 건드릴수 있는 설정은 없는 듯 했다./etc/apache2/mods-enable.......

오토마타 이론 공부 (1) - 기본적인 형식 언어 [내부링크]

공지:깃허브 블로그에 내용을 재작성하고 있습니다.더 이해하기 쉽고 자세하게 작성하고 있으니, 아래 링크로 이동하는 것을 권장합니다.본 시리즈는 이미 완결되어 있으니 현재 블로그에서 보셔도 좋습니다.https://bestowing.github.io/automata/2020/09/07/automata1.html오토마타 이론이란? 오토마타(Automata)란, 오토마톤(Automaton)의 복수형이다. 오토마톤이란, 추상적인 연산 장치 또는 '기계'(machine)이다. 오토마톤은 연산 능력을 갖춘 것이지만, 반드시 물리적인 하드웨어를 필요로 하지는 않는다. 기계라고 해서 꼭 우리가 보고 만질수 있는 물리적인 것이여야 하는 것은 아니라는 뜻이다. 따라서 오토마타는 추상.......

오토마타 이론 공부 (2) - DFA [내부링크]

유한 오토마타란?저번 포스트에서는 형식언어에 대해 소개했다. 이제 본격적으로 오토마타, 그중에서도 유한 오토마타(Finite Automata)에 대해 알아보자. 오토마타는 저번 포스트에서 설명했듯 추상적인 기계장치(machine)이다. 따라서 유한 오토마타또한 기계장치를 추상화 시켜놓은 것이며, 그 중에서도 유한한 상태를 가지는 기계장치이다. 상태(state)란 무엇인가? 말 그대로 현재 기계장치의 상태라고 생각하자. 우리의 몸이 건강한 상태, 아픈 상태, 흥분한 상태가 있듯, 기계장치도 목적에 따라 설계된 여러가지 상태가 있다.유한 오토마타를 예로 들어 설명하자면, 다음과 같은 유한 오토마타가 존재한다.당신의 집에도 하나쯤은.......

나는 기술 블로거다. [내부링크]

#나블로거야나는 기술 블로거다.최신 테크 소식을 전하는 블로거는 아니지만,그보다는 개발자로서,내가 배운 것들을,인터넷상의 누군가에게 나누고 가르치며스스로 익히면서 성장해나가는,그런 블로거다.

오토마타 이론 공부 (3) - NFA [내부링크]

#오토마타 #DFA #NFA #유한_오토마타 #결정적_유한_오토마타 #비결정적_유한_오토마타목표: 학교 수업에서 배운 내용을 복습한다.유한 오토마타(FA, Finite Automata)유한 오토마타는 기계장치(machine)를 추상화한 것으로, 유한한(finite) 상태를 가진다. 이번 포스트에서는 저번 포스트에 이어서 유한 오토마타의 나머지 유형에 대해 알아볼 것이다.비결정적 유한 오토마타의 구성비결정적 유한 오토마타(NFA)는, 결정적 유한 오토마타, DFA와 구성이 거의 같다. DFA와 동일하게, 다음 5가지 항목으로 구성되어있다.Q: 어떤 상태가 있는가?∑: 알파벳은 어떤게 있는가?q0: 시작 상태는 뭔가?F: 마지막 상태는 뭔가?δ: 입력이 주어지면.......

오토마타 이론 공부 (4) - ε전이가 있는 NFA [내부링크]

#오토마타 #DFA #NFA #유한_오토마타 #결정적_유한_오토마타 #비결정적_유한_오토마타목표: 학교 수업에서 배운 내용을 복습한다.유한 오토마타(Finite Automata)이번 포스트에서는, 유한 오토마타의 마지막 세번째 유형인 'ε-전이가 있는 비결정적 유한 오토마타'(Finite Automata With ε-transitions)에 대해 알아볼 것이다.* ε-NFA는 NFA가 가지는 한 특성(NFA는 ε전이를 가질 수 있다는)에 불과하기 때문에 굳이 따로 분류하지 않는 경우도 있지만, 나는 다른 형태로 배웠기 때문에 이렇게 한다.ε-NFA(NFA With ε-transitions)ε-NFA는 비결정적 유한 오토마타에 적어도 한 가지 이상의 ε-전이가 명시된 형태이다. .......

오토마타 이론 공부 (5) - 유한 오토마타: 세가지 유형의 동질성 [내부링크]

#오토마타 #DFA #NFA #유한_오토마타 #결정적_유한_오토마타 #비결정적_유한_오토마타 #NFA_to_DFA #NFA변환목표: 학교 수업에서 배운 내용을 복습한다.유한 오토마타: 세가지 유형의 동질성(Equivalency)지금까지 과정을 통해, 정규언어를 인식하는 유한 오토마타의 세 가지 유형인 DFA와 NFA, ε-NFA를 차례로 다루었다. 세 가지 유형은 모두 상호간의 변환이 가능하기 때문에, 본질적으로 동등한 것이라고 말한 바 있다. 따라서 이번 포스트에서는, 각 유형에서 다른 유형으로 변환하는 과정에 대해 알아볼 것이다. 이때, 경우의 수가 총 여섯가지가 나오는데, 각각 다음과 같다.1. DFA → NFA2. NFA → DFA3. DFA → ε-NFA4. ε-N.......

생활코딩 MySQL공부 [내부링크]

#mysql #데이터베이스 #생활코딩목표: 생활코딩 DATABASE2-MySQL 강의를 공부하며 스스로 취득하거나 강의를 통해 취득한 정보를 정리한다.파일컴퓨터가 정보를 담는 논리적인 단위.컴퓨터 파일(computer file)은 컴퓨터 등의 기기에서 의미 있는 정보를 담는 논리적인 단위이다.파일은 파일명과 파일 확장자로 식별한다.파일명은 말 그대로 파일의 이름이고, 확장자는 해당 파일을 어떻게 해석할 것인지 명시한 것이다.확장자에 따라 해당 파일을 해석하는 응용 프로그램이 달라진다.txt 파일이라면, 해당 파일이 텍스트 파일임을 알 수 있고, 메모장 같은 프로그램으로 해당 파일을 해석하는 것이 바람직하다.파일에서 데이터베이스로파일.......

Git 사용기 (1) - git이란? [내부링크]

#git #github #버전관리소프트웨어 #리눅스 #우분투목표: 코드스테이츠로 git을 이용하며 그리고 생활코딩을 통해 취득한 정보를 정리한다.컴퓨터 작업에서 버전 관리의 필요성문서 작업을 하던, 코딩을 하던, 발표자료로 ppt를 만들던...최종 버전이랍시고 만들고 수정사항이 생겨서 다시 만들고, 다시 수정하고... 이것을 반복해본 경험이 있는가?비유하자면, 이런느낌이다.수정할 일이 생길때마다, 파일명은 길어지고, 정말 최종 버전이라는 것을 강조하기 위해 파일명은 점점 길어진다.이렇게 복잡하게 하지 않고 그냥 수정사항이 생길 때마다 기존 파일에 덮어씌우면 되지 않나?그런데 만약 수정한 내용이 잘못되어서, 혹은 마음에.......

JShint란 무엇인가?(1) - 개념과 사용 목적 [내부링크]

#JShint #자바스크립트 #javascript #린트 #린팅 #linting #lint목표: JShint의 개념과 사용 목적을 이해한다.JShint란?코드스테이츠를 통해 자바스크립트 디버깅 파트를 공부하다보니 JSHint라는 것에 대해 알게 되었다.JShint란 무엇인가, 찾아보고 공부했다.JSHint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules.위키백과에서는, JSHint가 정적인 코드 분석 도구라고 말한다. 즉, 소스 코드를 분석해주는 tool임을 알 수 있다.그리고, 사용 목적은 소프트웨어 개발시에 자바스크립트 소스 코드가 코딩 규칙을 준수하는지 검사하는 것이다.그렇다면 왜.......