[Linux]부트캠프 - 파일 및 폴더 생성
파일 및 폴더 생성
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
하.. 뭔가 자바스크립트 공부한 것을 정리해서 남기려고 하면 HTML, CSS, JS 코드 모두 다르게 적용시켜야하고 이미지까지 캡쳐해서 올리려니깐 어렵고 시간이 너무많이 소모된다.. 뭔가 다른 방법을 필히 찾아봐야겠다. 구글링을 하다보면 코드펜 이런게 있던데 지킬에 적용할 수 있는지 찾아봐야겠다.
자바스크립트에는 배열 객체를 생성하는 Array()
생성자가 존재한다.
Array()
생성자의 괄호 안에 인수(숫자) 한 개만 적으면 그 수 만큼의 공백 값을 가진 배열이 생성된다.
Array(5)
: [,,,,] : 타입은 object
var arrayObj02 = new Array(5);
배열 안의 값들은 각각의 변수라고 생각하면 되는데(변수의 집합), 그래서 Null값이 아닌 undefined
라고 타입이 나온다.
alert(arrayObj02[0]);
또한 배열 생성자 안에 2개 이상의 인수를 넣어주면 적은 값을 포함한 배열을 생성한다. 이 또한 타입은 객체다.
var arrayObj03 = new Array(1,2,3,4,5);
또한 배열 안에 배열을 만드는 다차원 배열도 가능하다.
function multiArr(){
var len = 3;
var arr = new Array(len); // 공백 3개를 포함한 배열 2차원 배열 3개 생성
for (var i = 0; i < arr.length; i++){ // 배열의 길이만큼 반복
arr[i] = new Array(len); // arr배열 안에 공백의 값을 갖고 있는 배열 생성
}
arr[0][0] = '수박';
arr[0][1] = '딸기';
arr[1][0] = 1;
arr[1][1] = 2;
arr[1][2] = 3;
arr[2][0] = ['lol','wow'];
arr[2][1] = ['python','numpy','pandas']
arr[2][2] = ['javascript',['function']]
arr[1][2] = 9;
문자열(string)에서 join을 사용한 것 처럼 배열에서도 join이 사용 가능하다.
function joinTest(){
var nums = ['1','2',3,4,'5']
var res = nums.join('+');
alert(res);
}
배열 안의 값들 사이에 join으로 +
를 넣어서 res 변수에 저장하고 출력해봤다.
문자열과 동일하게 배열 안의 값들이 숫자형이나 문자형이어도 사이에 +가 들어간 상태로 출력되는 것을 확인할 수 있다.
여기서 eval
을 사용하면 +
와 같은 연산자들이 그대로 수행된다.
alert(eval(res));
1,2,3,4,5 가 더해진 15가 출력되는 것을 확인할 수 있다.
배열 안의 값들을 정렬할 수도 있다. .sort()
메소드를 사용하면 배열이 오름차순으로 정렬된다.
function sortTest01(){
var arr = ['a','d','b','c'];
alert(arr); // 정렬 되기 전
arr.sort();
alert(arr); // 정렬 된 후
}
정렬 되기 전
정렬 된 후
이번엔 숫자형 값을 가진 배열을 정렬해보자.
function sortTest02(){
var arr = [1,2,6,11,3,65,21];
arr.sort();
alert(arr);
}
오잉? [1,2,3,6,11,21,65] 와 같이 정렬이 될 줄 알았는데 그게 아니다.
이것은 배열을 정렬할 때.sort()
메서드 안에 파라미터
를 입력하지 않아서 ASCII코드 의 순서에 따라서 정렬하기 때문이다.
그래서 sort
메서드 안에 들어갈 파라미터. 즉, 원소의 값을 비교해주는 함수를 만들어야한다.
sort 함수 파라미터 안에 들어가는 return 값에 따라 정렬이 다르게 된다.
양수
: 오름차순0
: 배열 정렬 그대로음수
: 내림차순비교해주는 함수를 만들어보자.
function compareNum(a, b){
return a - b;
function sortTest02(){
var arr = [1,2,6,11,3,65,21];
arr.sort(compareNum);
alert(arr);
이렇게 다시 sort
에 파라미터를 넣어서 재실행해보면,
기존의 배열 상태에서 역순으로 정렬해주는 함수도 있다. 그것은 바로 .reverse()
메소드.
function reverseTest(){
var arr = [19,2,3,6,22,100];
arr.reverse();
alert(arr);
}
기존 [19,2,3,6,22,100]에서 [100,22,6,3,2,19] 로 거꾸로 잘 정렬되어 있는 것을 확인할 수 있다.
아까 배운 sort
를 활용해 원소들을 크기 순서로 정렬 한 뒤에 reverse
를 사용해 내림차순으로 정렬할 수 도 있다.
function reverseTest(){
var arr = [19,2,3,6,22,100];
arr.sort(function(a,b){return a-b}); // 이렇게 따로 함수를 정의하지 않고 아예 파라미터 안에 함수를 정의해서 실행시켜버리자!
arr.reverse();
alert(arr);
}
배열 객체의 기능 메소드 중에서는 스택과 큐
자료구조를 사용하기 위한 메소드들도 있다.
.push()
: 배열 안에 원소를 넣어줌.shift()
: 배열 안에 가장 먼저 위치한 값을 추출해줌.pop()
: 배열의 마지막 원소를 추출해줌어떻게 작동하는지 확인해보자. pushAndShift
라는 함수를 만들어봤다.
function pushAndShift(){
var queue = new Array(); // queue라는 이름의 배열 객체 생성
queue.push('first'); // 'first' 원소 삽입
queue.push('second'); // 'second' 원소 삽입
queue.push('third'); // 'third' 원소 삽입
alert(queue);
이렇게 먼저 넣은 순서대로 원소가 배열에 잘 들어가 있는 것을 확인할 수 있다.
이제 shift
를 사용해 값을 빼본다.
var a = queue.shift();
alert(a); // 추출한 값
alert(queue); // 추출하고 남은 배열의 원소들
가장 먼저 들어간 'first'
가 추출된다. 이것으로 shift
메서드는 먼저들어간 원소가 먼저 나오게 하는 메서드라는 것을 알 수 있다.(선입선출)
이번에는 pop
메서드를 사용하기 위해 배열에 원소하나를 추가해보자
queue.push('4th');
alert(queue);
push
한 '4th'
가 잘 들어갔다. 이제 pop
을 사용해 원소를 추출해보자.
var b = queue.pop();
alert(b);
alert(queue);
pop()
메서드는 가장 나중에 들어온 원소를 추출하는 함수다.(후입선출)배열은 또 문자열과 같이 슬라이싱(Slicing)이 가능하다.
배열을 하나 생성해보자.
function sliceTest(){
var arr01 = new Array(1,2,3,4,5,6,7);
var slice01 = arr01.slice(1,3);
alert(slice01);
}
함수 내에서 arr01
이라는 배열을 생성해 줬다. 이 배열은 [1,2,3,4,5,6,7] 라고 생각하자. 이때 slice01
이라는 변수에 .slice
메소드를 사용해 슬라이싱 해줬다. 메소드안에 들어가는 파라미터는 이렇다.
.slice(x, y)
: x는 자르기 시작할 위치, y는 자르기를 마칠 위치에 + 1
따라서 위 코드의 arr01.slice(1,3);
은 arr01
배열의 1번 위치에 존재한 원소부터 2번 위치에 존재한 원소까지 자른다는 뜻이다. alert로 확인해보자.
슬라이싱한 배열 내의 값을 바꿔주면 원래 배열의 값은 어떻게 될까?
var arr02 = new Array(4);
arr02[0] = new Array(1,2);
arr02[1] = new Array(3,4);
arr02[2] = new Array(5,6);
arr02[3] = new Array(7,8);
var slice02 = arr02.slice(1,3);
새로운 배열 객체 arr02
를 생성해 줬다. 4개의 공백을 가진 배열이다.
각 원소 안에 인덱스를 활용해 새로운 배열들을 생성해 줬다. 이차원 배열이 만들어진다.
[[1,2],[3,4],[5,6],[7,8]] 이런 배열이 완성되고 slice02
에 슬라이싱을 해주자
arr02
의 [1]
과 [2]
에 있던 값들이 잘 출력되었다.
이때 슬라이싱 한 slice02
의 값을 바꿔줘보자.
slice02[0][0] = 33;
첫번째에 위치한 원소에서 또 첫번째에 위치한 값을 33으로 바꿔준다.
그러면 [[33,4],[5,6]] 이런 형태가 될 것이라는건 머리속으로 잘 알고 있다.
그런데 이때 슬라싱을 해온 arr02
을 확인해보자.
어라, 기존의 arr02
의 원소 3이 33으로 바뀌어 있다.
이것은 슬라이싱은 얕은 복사(shallow)
이기 때문이다. 그래서 원본에도 변화의 영향을 끼치는 것이다.
자바스크립트에서는 widow
함수를 통해서 팝업창을 띄울 수 있다.
그 중 특정한 경로(URL)을 띄우는 open()
함수가 있다.
window.open('url','팝업name','팝업 옵션(팝업창의 크기 width=???px 등)')
실제 예시를 통해 구현해보자.
새로운 HTML 파일을 만들어 <head>
태그 부분에 스크립트를 만들어준다.
<script type='text/javascript'>
function popupTest(){
window.open('js12-popup-res.html','','width=300px, height=300px');
}
</script>
팝업창을 띄우게 하는 함수를 만들어준다. window.open
의 파라미터 값을 순서대로 보면
'js12-popup-res.html'
이라는 HTML을 창에 띄울 것이고그리고 body부분에는 만든 함수를 클릭으로 실행되게 해주는 버튼을 만들어준다.
<body>
<button onclick='popupTest();'>팝업창</button>
</body>
그리고 위에 open()
의 경로 파라미터에 적은 HTML 파일을 만들어 바디부분에 아무렇게나 작성해준다.
그리고 버튼을 눌러 실행해보면
정해준 옵션 값을 따르는 팝업창이 띄워지게 된다!
Location 객체를 통해 현재 브라우저에 표시된 HTML 문서의 주소를 얻거나, 브라우저에 새 문서를 불러올 때 사용할 수 있다.
속성?메소드?
location.href='경로'
: 앵커 태그의 href처럼 경로를 지정해 해당 경로의 문서를 불러온다.location.assign('경로')
: 현재 창에 지정된 경로에 존재하는 문서를 불러온다.location.replace('경로')
: 현재 창에 지정된 경로에 존재하는 문서를 불러오는 것은 assign과 같으나, 현재의 문서를 브라우저의 히스토리에서 제거한다.location.reload()
: 브라우저 창에 현재 문서를 다시 불러온다. 새로고침이라고 이해하면 될 것 같다.html 문서를 만들어 body태그에 경로 연습이라는 버튼을 만들어서 실습을 해봤다.
<body>
<button onclick='locTest();'>경로 연습</button>
</body>
스크립트에 버튼을 클릭했을 경우 동작할 함수 locTest()
를 만들어준다.
<script>
function locTest(){
location.href='http://www.naver.com';
}
</script>
처음으로는 location.href
인데 경로에 네이버의 주소를 작성했다. 버튼을 누르면 네이버로 잘 연결된다.
location.assign('http://www.google.com');
location.assign
을 사용해서 경로를 구글 주소로 작성했다. 버튼을 누르면 구글 홈페이지가 잘 나올 것이다.
location.replace('http://google.com');
location.replace()
를 사용했다. 동일하게 구글 홈페이지가 나오지만 뒤로가기 버튼이 나오지 않을 것이다. 그말은 즉슨, 버튼이 존재한 문서를 히스토리에서 지워버린다는 말이다!체크박스는 input태그의 타입 중 하나다. 주로 클라이언트에게 선택할 항목들을 먼저 제시한 뒤에 요청할 요소들을 재량껏 선택하게 해줄 때 사용하는 것 같다.
실습을 통해 연습해보았다.
우선 HTML의 내용부터 만들어주자. <body>
태그에 들어간 내용들이다.
<body>
<div id='colorbox'>
<div id='red'>red</div>
<div id='green'>green</div>
<div id='blue'>blue</div>
<div id='magenta'>magenta</div>
</div>
<div id='base'>
<form>
<input type='checkbox' name='all' onclick='allCheck(this.checked);'/>전체 선택<br>
<input type='checkbox' name='chk' value='red'/>빨강<br>
<input type='checkbox' name='chk' value='green'/>초록<br>
<input type='checkbox' name='chk' value='blue'/>파랑<br>
<input type='checkbox' name='chk' value='magenta'/>진홍<br>
<input type='button' value='선택' onclick='selectColor();' />
<input type='button' value='취소' onclick='clearDiv();' />
</form>
</div>
</body>
스타일 영역이다. <header>
태그 안에 <style>
태그를 넣어 스타일을 입혀주자.
<head>
<style>
#colorbox{
width: 320px;
height: 320px;
position: relative;
}
#red, #green, #blue, #magenta{
width: 150px;
height: 150px;
border: 1px solid black;
position: absolute;
}
#green{
left: 160px;
}
#blue{
top:160px;
}
#magenta{
left: 160px;
top: 160px;
}
</head>
본문과 스타일을 지정해주면 문서가 이렇게 구현될 것이다.
이제 스크립트를 적용해 색상의 이름이 적힌 체크박스를 눌러서 선택했을 때 해당 영역의 박스의 색깔이 변하는 함수를 구현해보자.
function selectColor(){
var chks = document.getElementsByName('chk');
for (var i = 0; i < chks.length; i++) {
if (chks[i].checked) {
document.getElementById(chks[i].value).style.backgroundColor = chks[i].value;
} else {
document.getElementById(chks[i].value).style.backgroundColor = '';
}
}
}
selectColor
함수를 설명하자면 이렇다.
<body>
태그에 있는 문서 내용 중 name
이 'chk'
인 요소들을 불러와 chks
라는 변수에 노드리스트로 저장한다.
반복문을 0부터 chks
노드리스트의 길이만큼 1씩 늘려가며 반복해준다.
이때 불러온 노드리스트의 각 노드들은 <input>
태그의 체크박스들을 의미한다. 체크박스의 속성인 checked
는 체크박스에 체크가 되어있다면 true
를, 비어있다면 false
를 반환한다.
그래서 각 노드들의 체크 여부를 판단해 값이 true라면 각 체크박스가 가지고 있는 value
값(첫번째 노드(체크박스)는 value=’red’)과 같은 id(id가 ‘red’인 요소)를 찾아서 배경색을 그 값(‘red)’으로 적용시켜준다.
만약에 false
(체크박스가 체크되지 않고 비어있다면) 배경색을 해제해준다.(backgroundColor = ‘’;)
선택 버튼을 누르면 해당 함수가 실행된다. 빨강과 진홍을 체크하고 선택을 눌러보면
다음은 전체 선택이라는 체크박스를 체크하면 나머지 박스들이 모두 체크가 되게만드는 함수다.
function allCheck(bool){
var chks = document.getElementsByName('chk');
for (var i = 0; i < chks.length; i++) {
chks[i].checked = bool;
}
}
name
이 'chk'
인 요소들을 불러와 노드리스트로 만들어 chks
라는 변수에 저장해준다.
노드리스트의 길이만큼 반복해 각 노드(체크박스들)의 체크 상태를 값을 입력받는 파라미터의 값에 맞게 적용시켜준다.
전체 선택 체크박스를 누르면 allCheck()
함수가 적용되게 만들어준다.
<input type='checkbox' name='all' onclick='allCheck(this.checked);'/>전체 선택<br>
여기서 파라미터로 들어간 this.checked
는 전체선택 체크박스가 체크된 상태라면 True를, 안된 상태라면 False를 반환해준다.
그래서 전체선택박스가 선택되면 True 값을 반환해 다른 체크박스들의 checked
속성도 true
가 되어 체크가 된 상태로 변하고, 그 반대의 경우도 나오는 것이다.
이제 마지막으로 체크 상태를 초기화하고 컬러박스들의 배경값도 모두 초기화 시키는 함수만 남았다.
function clearDiv(){
allCheck(false);
var colorbox = document.querySelectorAll('#colorbox > div');
for (var i = 0; i < colorbox.length; i++) {
colorbox[i].style.backgroundColor = '';
}
}
위에서 생성한 allCheck()
함수의 파라미터 값에 false
를 넣어서 모든 체크박스를 선택 안됌
상태로 만들어 준다.
선택자를 이용해 아이디가 colorbox
이며 그 자식이 div
태그인 것들을 선택해서 colorbox
라는 변수에 저장해준다.
colorbox
의 길이만큼 반복문을 반복하는데, 요소들이 순차적으로 배경색이 없음으로 적용되게 만든다.
취소
버튼을 누르면 체크가 풀리며 배경색이 모두 없음으로 변경되는 것을 확인할 수 있다.<tag>
<iframe>
: 문서 안에 또 다른 프레임을 만든다. 즉, 웹페이지 안에 또다른 웹페이지를 삽입하는 것을 의미. inline frame의 약자. 속성으로는 삽입하려는 주소인 src
와 웹 브라우저에게 어떤 iframe인지 알리는 title
이 있다.<pre>
: 태그 안에 내용을 작성하면 내용을 형식 그대로 반영되게 만들어주는 태그.<style>
position: absolute;
: position: static
속성을 가지고 있지 않은 조상을 기준으로 위치. 만약에 조상 중 position
이 relative
, absolute
, fixed
,인 태그가 없다면 가장 위의 태그(<body>
)가 기준이 된다.display: none;
: 요소를 보이지 않게 하는 속성. 다만, UI적으로 볼 때 화면 상 어떤 영역을 차지하지 않고 완전히 삭제된 것처럼 만듦. 쉽게 얘기하면 문서에서 시각적으로 공간을 차지하지 않는다!visibility: hidden;
: display: none
과 같이 요소를 보이지 않게 하는 속성. 하지만 visibility : hidden
은 해당 요소가 보이지 않지만 존재하는 영역은 확실하게 보인다(비어있는 것 처럼). 쉽게 얘기하면 문서에서 시각적인 공간을 차지하고 있으며 내용만 보이지 않는 것!<input readonly='readonly'>
: 인풋 태그 안의 속성으로, 읽기전용이다. 해당 내용을 복사하거나하는 것은 되지만 내용을 변경할 수는 없게 만들어준다.colspan=?
: 행 합치기..disabled = ''
: 기능을 활성화 시킨다..disabled = 'disabled';
: 기능을 비활성화 시킨다.(예를들어 버튼이 있으면 버튼을 사용할 수 없게 만듦)<script>
window.open(url, name, prop)
: url에 적힌 주소(링크나 문서)를 새로운 창을 열어 불러와준다. 이때 prop
에 크기와 같은 속성들을 설정해줄 수 있다. 실습 때 알게 된 것은, <iframe>
태그의 name
속성과 name
을 똑같이 설정해주면 iframe의 자리에 새 문서를 띄워준다. 그래서 동일 문서에서 2개의 웹 페이지를 볼 수도 있다.document.getElement(s)By~~
: 내가 생각하기엔 자바스크립트의 꽃 같다. 계~~~ 속 사용된다. 요소에 따라 value
, innerHTML
등 다양한 속성이 존재하니깐 까먹지말자구~opener
:open
을 이용해 새 창을 띄우면 새로 띄운 창은 자식창
이 된다. 그 자식창에서 부모창
을 가리키는 것이 opener
객체다. 부모창의 요소들의 값을 가져오거나 그곳에 뭔가를 적용하거나 하고싶을 때 사용할 수 있다. 혹은 위에 적어둔 경로(Location)
객체를 사용해 자식창에서 부모창에 지정한 문서나 페이지를 열게 만들 수 도 있다. 리모콘같은 느낌?..음close()
: 현재 창을 닫는다. self.close()
로도 가능하다. 허나 같은 문서에 <iframe>
태그에 창을 띄워 놓았을 때는 self.close()
가 먹히질 않는데, 이건 말그대로 iframe이 다른 웹페이지로 작동되기 때문이다.DOM을 이용해 여러 실습을 해보았다.
화살표 이미지와 기타 이미지들을 이용해서 이미지를 눌러 다음 사진, 이전 사진이 나오게하는 실습
부모와 자식을 탐색하는 함수를 만들어 문서 객체 모델들이 어떻게 구조화가 되어있는지 감을 또 잡을 수 있게 되었다.
.parentNode
: 부모 노드를 호출
.childNodes
: 자식 노드리스트를 호출
.nodeName
: 노드 명
파일 및 폴더 생성
파일 시스템 탐색
도움말(man -> manual)
명령어 기초
유닉스(Unix)
특정 코드 지연 실행 - DispatchQueue.main.asyncAfter(deadline: )
Naming Conventions
안드로이드 폰과 맥북에어 M1 USB 테더링 성공
Simulator 풀 스크린 사용 방법
10807번 - 개수 세기
프로그래머스 Lv.1 풀이 코드 모음
프로그래머스 Lv.1 풀이 코드 모음
11047번 - 동전 0
11659번 - 구간 합 구하기 4
14888번 - 연산자 끼워넣기
9184번 - 신나는 함수 실행
24416번 - 알고리즘 수업 - 피보나치 수 1
2580번 - 스도쿠
9663번 - N-Queen
15652번 - N과 M (4)
15651번 - N과 M (3)
15650번 - N과 M (2)
25305번 - 커트라인
25304번 - 영수증
3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰
15649번 - N과 M (1)
2004번 - 조합 0의 개수
1676번 - 팩토리얼 0의 개수
9375번 - 패션왕 신해빈
1010번 - 다리 놓기
11051번 - 이항 계수 2
11050번 - 이항 계수 1
3036번 - 링
2981번 - 검문
1934번 - 최소공배수
2609번 - 최대공약수와 최소공배수
1037번 - 약수
5086번 - 배수와 약수
1358번 - 하키
1004번 - 어린 왕자
1002번 - 터렛
3053번 - 택시 기하학
2477번 - 참외밭
4153번 - 직각삼각형
3009번 - 네 번째 점
1085번 - 직사각형에서 탈출
11478번 - 서로 다른 부분 문자열의 개수
1269번 - 대칭 차집합
1764번 - 듣보잡
10816번 - 숫자 카드 2
1620번 - 나는야 포켓몬 마스터 이다솜
14425번 - 문자열 집합
10815번 - 숫자 카드
18870번 - 좌표 압축
10814번 - 나이순 정렬
1181번 - 단어 정렬
11651번 - 좌표 정렬하기 2
11650번 - 좌표 정렬하기
1427번 - 소트인사이드
2108번 - 통계학
10989번 - 수 정렬하기 3
2751번 - 수 정렬하기 2
2750번 - 수 정렬하기
22.06.25 ~ 27 부산 먹부림 기록
1436번 - 영화감독 숌
1018번 - 체스판 다시 칠하기
7568번 - 덩치
2231번 - 분해합
2798번 - 블랙잭
11729번 - 하노이 탑 이동 순서
2447번 - 별 찍기 - 10
17478번 - 재귀함수가 뭔가요?
10870번 - 피보나치 수 5
10872번 - 팩토리얼
9020번 - 골드바흐의 추측
4948번 - 베르트랑 공준
1929번 - 소수 구하기
11653번 - 소인수분해
2581번 - 소수
1978번 - 소수 찾기
10757번 - 큰 수 A+B
2839번 - 설탕 배달
2775번 - 부녀회장이 될테야
10250번 - ACM 호텔
2869번 - 달팽이는 올라가고 싶다
1193번 - 분수찾기
2292번 - 벌집
1712번 - 손익분기점
1316번 - 그룹 단어 체커
2941번 - 크로아티아 알파벳
5622번 - 다이얼
2908번 - 상수
1152번 - 단어의 개수
1157번 - 단어 공부
2675번 - 문자열 반복
10809번 - 알파벳 찾기
11720번 - 숫자의 합
11654번 - 아스키 코드
1065번 - 한수
4673번 - 셀프 넘버
15596번 - 정수 N개의 합
4344번 - 평균은 넘겠지
8958번 - OX퀴즈
25083번 - 새싹
Spark Bigdata Pipeline
Spark 3일차
Spark 2일차
1546번 - 평균
Spark 1일차
Hadoop🐘
3052번 - 나머지
2577번 - 숫자의 개수
2562번 - 최댓값
10818번 - 최소, 최대
Linux
MongoDB 조회 문제
MongoDB
1110번 - 더하기 사이클
10951번 - A+B - 4
Oracle 3️⃣
ORACLE 연습용 문제 만들기 숙제
10952번 - A+B - 5
Oracle 2️⃣
2480번 - 주사위 세개
Oracle Day1️⃣
Tensorflow
Big Data
2525번 - 오븐 시계
10871번 - X보다 작은 수
2439번 - 별 찍기 - 2
2438번 - 별 찍기 - 1
11022번 - A+B - 8
11021번 - A+B - 7
2742번 - 기찍 N
2741번 - N 찍기
15552번 - 빠른 A+B
8393번 - 합
10950번 - A+B - 3
9️⃣ 2739번 - 구구단
2884번 - 알람 시계
14681번 - 사분면 고르기
⛏크롤링(Crawling)
2753번 - 윤년
Django 복습 4️⃣
Django 복습 3️⃣
💯 9498번 - 시험 성적
1330번 - 두 수 비교하기
✖ 2588번 - 곱셈
➗ 10430번 - 나머지
Django 복습 2️⃣
Django 복습 1
MySQL 복습!
⁉10926번 - ??!
🆎1008번 - A/B
👩🦲 18108번 - 1998년생인 내가 태국에서는 2541년생?!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🎈✨경 축✨🎈
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
선형 자료구조(1일차에 이어서)
🆎10998번 - A×B
🆎1001번 - A-B
🆎1000번 - A+B
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐶10172번 - 개
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐱10171번 - 고양이
[해당 포스트는 유튜버 나동빈님의 영상을 참고했습니다.]
❤10718번 - We love kriii
🖐2557번 - Hello World
Today I Learned(TIL)📌 (2021.12.31)
Today I Learned(TIL)📌 (2021.12.30)
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[noitce!!] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!