프로그래밍 11

[백준/python] 9081번 단어 맞추기

1. 문제 이 문제는 어떤 단어가 주어지고 사전식 정렬을 하였을 때그 바로 다음에 오는 단어를 찾는 문제이다.2. 풀이[접근 1]처음에는 모든 사전식 배열을 다 늘어놓고그 중에서 입력값을 찾은 뒤, 그 다음 값을 출력하는 방식을 생각했다. 1. 순열 라이브러리를 이용해 단어 조합을 모두 리스트에 넣는다.2. 처음 입력한 단어의 인덱스를 찾는다.3. 마지막 단어가 아닐 경우 다음 단어를 출력한다. 역시 코드 자체에 문제는 없었으나 결과가 시간 초과가 떠버렸다.필요 없는 데이터까지 다 구해서일까...바로 다음 순열을 어떻게 찾을지 긴 시간 고민했다. [접근 2]고민의 과정을 거쳐 뒤에서부터 숫자 크기를 비교하는 방식을 발견했다.그 뒤 숫자 위치를 바꾸고 거꾸로 정렬하는 방식으로 문제를 해결할 수 있었다.뒤의..

[JavaScript] 자바스크립트의 기초-4

Object 개체 배열에서는 요소들에 이름을 줄 수 없고 순서로만 구분할 수 있습니다. 개체에서는 각각의 요소에 이름을 줄 수 있습니다. const kim = { firstName: 'Jay' lastName: 'Kim', age: 2037 - 1991, job: 'teacher', friends: ['Peter', 'Steven'] 배열과 달리 개체는 중괄호를 사용하며 키와 값이 있습니다. 개체에서 원하는 값을 가져올 때는 배열이름.키 를 입력하거나 배열이름['키']를 입력해야 합니다. 대괄호를 사용한 표기법의 경우 식을 넣을 수 있습니다. console.log(kim.lastName); console.log(kim['lastName']); 개체는 값이므로 그 안에 함수를 추가할 수 있습니다. 함수를 ..

[JavaScript] 자바스크립트의 기초-3

Strict mode 'use strict' 를 가장 윗줄에 쓰면 엄격한 모드가 적용됩니다. 엄격한 모드를 실행하면 특정 작업을 금지시키고 눈에 보이는 오류를 알려줍니다. Function 함수 function 함수이름() { ~~~~~; } 함수이름(); 함수에는 매개변수가 있습니다. 함수 이름 뒤에 매개변수를 추가하여 이용할 수 있습니다. 나중에 함수를 불러올 때 매개변수를 입력하면 해당하는 매개변수가 위치한 함수 내 코드를 실행할 때 적용이 됩니다. 함수에서 어떤 내용을 출력할 때는 return 을 활용할 수 있습니다. 함수 표현식 const age = function (birthYear) { reuturn 2037 - birthYear; } 함수 선언 외에도 함수 표현식을 사용할 수 있습니다. 표현..

[JavaScript] 자바스크립트의 기초-2

문자열과 템플릿 리터럴 문자열에 변수를 추가할 수 있습니다. 그러나 문자열의 구조를 파악하기가 쉽지 않습니다. const name = "I'm" + firstName + ', a' + (year - birthYear) + 'years old ' + job + '!'; 이를 해결하기 위한 방법이 템플릿 리터럴입니다. const name = `I'm ${firstName}, a ${year - birthYear} years old ${job}!`; 키보드의 1 옆에 있는 ` 배틱과 달러 표시를 사용하여 표현할 수 있습니다. (파이썬의 f스트링 같은 역할입니다.) 템플릿 리터럴을 활용하면 다중라인 문자열을 사용할 수 있습니다. 즉, 여러 줄을 편리하게 입력할 수 있습니다. 조건문 If / Else if ( 조..

[JavaScript] 자바스크립트의 기초-1

자바스크립트란? 자바스크립트는 하이레벨의 객체지향, 다중패러다임의 프로그래밍 언어입니다. 프로그래밍 언어는 컴퓨터에 지시를 내리는 언어입니다. 하이레벨이란 우리가 복잡한 부분을 고려할 필요가 없다는 것, 객체지향이란 객체를 기반으로 하여 사용하는 언어라는 것, 멀티 패러다임은 다른 종류의 프로그래밍을 할 수 있다는 것입니다. HTML과 CSS로 내용과 디자인을 마치고 웹앱을 만들기 위해 사용하는 프로그래밍 언어입니다. 우리는 자바스크립트를 이용하여 프론트엔드의 역할인 동적인 효과와 웹앱을 만들 수 있습니다. 리액트, 엥귤러, 뷰 같은 라이브러리를 활용하기 위해 자바스크립트 실력을 키워두는 것이 좋습니다. 그리고 자바스크립트로 웹 서버, 백엔드의 역할을 하기 위해 노드를 사용할 수 있습니다. 또한 자바스크..

[SEF2023] DAY 1. LEARN 당신도 배울 수 있습니다 강연 정리

경제학과 출신, 네이버 로봇 자율주행 개발자 되다 김건우 (네이버랩스 로봇 자율주행 개발자) 시작한 이유 컴퓨터에 흥미를 느껴 복수전공을 시작했음 주변 사람을 가르쳐주는 것에 흥미가 있었음 -> 내가 하는 일이 다른 사람들에게 효용을 주었으면 좋겠다 어려움 복수전공 1학기 때 수업이 괜찮아 공부하지 않고 2학기를 맞이함 자료구조, 어셈블리 등을 마주하며 어려워짐 친구의 조언으로 인해 다시 마음을 잡고 공부함 학습 팁 이해가 안되면 외운다 외운 게 이해가 되면 누구에게 발표한다 (장기기억) 경제학과가 도움이 된 점 수학 (미적분, 선형대수학, 통계 등) 로봇에 관심을 가지게 된 계기 네이버 랩스 대표님 유튜브 영상 RC카 만들기 프로젝트에 참여 자율주행 로봇에 관심을 가져 일 시작 로봇자율주행 locali..

강연 기록 2023.09.06

[이직기록] 2023년 하반기 개발 공부 계획 (이론편)

2023년 하반기 공부 계획을 정리해보려고 한다. 비전공자에게 부족한 IT 지식(이론)과 프로그래밍 능력을 동시에 학습할 수 있도록 투트랙으로 계획을 세워보았다. 이산수학 - 파이썬 기초 - 데이터 구조&알고리즘 - 구글 IT 서포트 - 인프런 강의 1. 이산수학 (수강중) 컴퓨터 공학과 1학년 때 수강하는 과목인 이산수학. 컴퓨터는 수학을 기반으로 이루어진 학문이라 1학년 때 배우는가보다. 코딩테스트를 잘 보려면 알고리즘을 이해해야 한다고 하는데 아마 그러한 기초 지식을 얻을 수 있는 수학 과목이 아닐까 싶다. 이산수학은 영어로 공부하기에는 다소 진입장벽이 높아서 KOCW에서 강의를 골랐다. 가천대학교 김철연 교수님께서 2014년도에 수업하신 강의를 보고 있다. 거의 10년 전 강의이지만 KOCW에 올..

이직 기록 2023.08.10

[이산수학] KOCW 가천대학교 김철연 교수님 강의 3주차 정리

Terminology Theorem (정리) : 참이라는 것을 보일 수 있는 진술, 증명의 대상 Axiom (공리) : 우리가 진실이라고 가정하는 진술, 증명의 대상이 아님 Lemma (보조정리) : 참이라는 것을 보일 수 있는 진술 중 중요도가 낮은 것, theorem 증명 간소화하기 위해 중간에 미리 정리 Corollary : 참이라는 것을 보일 수 있는 진술 중 증명이 필요 없는 것, theroem을 보면 자동적으로 알 수 있는 것 Conjecture : 아직 증명되지 않은 것 중 참이라고 가정하는 진술 → Axiom - Theorem(중요), Lemma, Corollary - Conjecture Methods of Proving Theorems Direct Proof (직접 증명법) : 조건 명제..

[이산수학] KOCW 가천대학교 김철연 교수님 강의 2주차 정리

Quantifiers Predicates에 대한 T/F를 알 수 있음 All → A 거꾸로 / E 뒤집어서 Universal quantification: VxP(x) → 모든 x에 대해서 참인가? Existential quantification : ExP(x) → 어떤 x에 대해서 참인가? quantifier가 다른 모든 논리연산자보다 우선순위가 높다 Valid Arguments 주어진 사실로 새로운 사실을 깨닫는 것 Premises (p1, p2, …, pn-1) 전제 Conclusion (pn) 결론 모든 전제가 사실일 때 결론도 사실이다 Rules of Inference Inference : 이미 알고 있는 것으로 새로운 사실을 찾는 것 p + p→q = q ㄱq + p→q = ㄱp p→q + →r..

[이산수학] KOCW 가천대학교 김철연 교수님 강의 1주차 정리

강좌 소개 kocw 가천대학교 김철연 교수님 2014-1 이산수학 이산 : 떨어져 있는, discrete(↔continuous) 0과 1 사이의 실수는 무한개, 정수는 없음 → 이산수학은 마치 정수(0,1) 같이 서로 끊어지는 개념 소프트웨어는 수학에 근간을 두고 있음 discrete math는 출발점이자 도착점임. (c언어, 컴퓨터구조) 고등학생 때 배운 집합과 명제가 기초지식(50% 이상은 고등학생 때 배운 내용을 영어로 다시 배우는 것 뿐) 가장 중요한 것은 로직 ch.1 Foundation part 1 Proposition(명제) proposition = declarative sentence (선언적 문장) True or false, but not both (참 또는 거짓) natural lang..