본문 바로가기

분류 전체보기

(248)
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽3(배열) - 객체의 Property Name이 중요하지 않을 때, 배열로 선언하는 것이 유리합니다. 배열의 원소는 indexing을 통해 접근합니다. 이때, index는 0부터 시작합니다. ex) course[2] - 배열도 JS에서 이미 존재하는 객체입니다. 따라서 다양한 Property와 메소드를 필요할 때 사용할 수 있어 매우 편리합니다. length 프로퍼티는 배열의 길이를 나타냅니다. - 배열의 존재하지 않은 index에 새로운 값을 할당하려면 members[5]='hi'와 같이 하면 됩니다. 이때, 중간에 건너뛴 index들이 있다면 모두 undefined가 할당됩니다. - 배열의 이미 존재하는 index에 있는 값을 수정하려면 members[5]='hello'와 같이 새로운 값을 할당해주면 됩니다. ..
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽3(객체) - 객체는 { key1: value1, key2: value2, key3:value3 }와 같이 정의합니다. 이때, key와 value쌍을 묶어서 속성(Property)라고 부르고, key는 Property Name, value는 Property value라고도 부릅니다. - Property Name은 문자열 타입인데, ''를 생략하더라도 JS가 암묵적으로 문자열로 변환해줍니다. 그리고 Property Name은 첫 번째 글자는 반드시 문자, 밑줄(_), 달러 기호($) 중 하나로 시작해야 하며, 띄어쓰기와 하이픈(-)은 사용할 수 없습니다. 이러한 규칙을 벗어난다면 반드시 ' '로 묶어줘야 합니다. ex) { 'brand Name' : '코드잇', 'born-Year' : 2017, isVeryNice..
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽2(제어문) ※ 아래의 내용들은 모두 변수선언만 let으로 하고, C와 같이 작성합니다. - 조건문은 if(조건) { 동작부분; } else if { 동작부분; } else { 동작부분; }로 만듭니다. - switch문은 switch(비교할 값) { case 조건값_1: 동작부분; break; case 조건값_2: 동작부분; break; default: 동작부분; }로 만들고, 마지막의 default는 생략할 수 있습니다. 또한, break;가 없으면 뒷부분을 모두 실행하기 때문에 반드시 적어줘야 합니다. - switch문은 값들을 비교할 때 자료형을 엄격하게 구분하므로 if문으로 대체할 때는 반드시 등호 3개로 일치비교를 해야합니다. - for문은 for(초기화부분; 조건부분; 추가동작부분) { 동작부분; }로 ..
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽2(추상화) - =는 할당연산자로 오른쪽 값을 왼쪽에 할당합니다. - +=, -= 처럼 복합 할당 연산자도 있습니다. - 함수를 호출한 부분이 return되는 값으로 대체됩니다. - 함수안에서 return;이 있으면, 거기서 함수가 종료됩니다. - 함수의 return값이 없으면 undefined가 return됩니다. - 함수 매개변수에 인자를 전달하지 않으면 undefined가 전달됩니다. 하지만, 매개변수에 기본값을 지정할 수도 있습니다. 이러한 파라미터를 옵셔널 파라미터라고 합니다. 이때, 옵셔널 파라미터는 반드시 가장 뒤 쪽에 선언되어야 합니다. ex) function introduce(name,nationality='한국') - 지역 변수의 scope는 { }로 감싸진 블록안에서만 접근가능합니다. { }밖에서..
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽2(자료형) - JS에서 숫자인 값은 사칙연산(+, -, *, /)이 가능합니다. 그리고 나머지 연산(%)과 거듭제곱(**)도 할 수 있습니다. 또한, JS에서 숫자 연산을 할 때 사칙연산 우선순위를 그대로 따릅니다. - 문자열은 반드시 같은 따옴표로 감싸줘야합니다('' 또는 ""). 내부에 중복되는 따옴표를 넣어야할 때 백슬래시(\)를 앞에 붙여줍니다. 또는 백틱(``)으로 문자열을 묶어주는 방법도 있습니다. - 불 연산에서 AND는 &&로, OR는 ||로, NOT은 !로 나타냅니다. - typeof 연산자는 자료형을 문자열로 반환해줍니다. 1과 1.0은 모두 number 자료형입니다. 또한, NaN은 not a number를 의미합니다. 그리고 typeof 연산자는 사칙연산보다 우선순위가 높습니다. 따라서 typ..
[CodeIt] 프로그래밍 시작하기 in JavaScript 토픽1 - 세미콜론 자동으로 추가해주지만, 한줄에 여러 코드 작성하려면 ; 써줘야 합니다. - 한 줄 주석은 //로 처리하고, 여러 줄 주석은 /* */로 처리합니다. - 자료형(Data Type)에는 숫자인 정수(Integer)와 소수(floating point), 문자열(string)(''또는 ""로 묶기, +로 덧셈가능), 불린(Boolean)이 있습니다. - 변수 선언은 let으로 합니다.(var는 이제 안씀) 상수 선언은 const로 합니다. - 식별자 이름은 문자(a-z, A-Z), 밑줄(_), 달러($)로 시작해야 하고, 두번째 글자부터는 숫자(0-9)도 가능합니다. 또한, 대문자와 소문자는 구별하고 예약어는 사용하면 안됩니다. 그리고 자바스크립트 변수 이름은 camelCase가 선호되는 편입니다...
[Python] 백준 2178번 : 미로 탐색 (S1) - DFS&BFS단계별5 #문제 www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net #풀이 & 학습한 내용 "BFS의 특징은 각 정점을 최단경로로 방문한다는 것입니다. 이 점을 활용해 최단거리를 구해 보는 문제"입니다. 그저 평소의 bfs에서 최단경로를 세는 리스트만 추가해주면 해결되는 문제였습니다. 방문처리를 꼭 해주어 무한루프를 도는 일이 없게 해야 합니다. #소스코드(22번 쨰 줄 주목) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2..
[Python] 백준 1012번 : 유기농 배추 (S2) - DFS&BFS단계별4 #문제 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net #풀이 & 학습한 내용 "땅의 모습이 아니라 배추의 위치가 주어지는 문제"입니다. 땅에서 배추의 위치를 2차원 리스트에 넣고, 이를 그래프로 생각하여 DFS를 수행해 문제를 해결하였습니다. 첫 번째 제출에서 런타임 에러(RecursionError)가 발생하여 재귀 깊이를 연장해주어 제출했지만, PyPy3에서 메모리 초과가 발생하여 Python3로 제출하니 통과되었습니다. 앞으로 파이썬의 재귀 깊이가 기본적으로 최대 ..