목록전체 글 (265)
SW
0. 제목 백준 10610 30 BOJ 10610 30 C++ 10610 30 1. 문제 https://www.acmicpc.net/problem/10610 2. 풀이 30의 배수가 되려면 3의 배수이면서 10의 배수여야한다. 10의 배수이려면 마지막에 0이 반드시 나와야 하고 3의 배수이려면 각 자리 수의 합이 3으로 나누어 떨어져야 한다. 그리고 문제에서 N이 최대 100000개의 숫자로 구성되어 있다고 하여 문자열로 입력을 받았다. 먼저 입력값에 0이 포함되어 있는지 확인하고 포함되어 있는 것들의 자리수 합을 구한다. 자리수가 3으로 나누어 떨어지면 내림차순을 하고 정답을 출력한다. 조건에 맞지 않으면 -1을 출력한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..
0. 인공지능(A.I.) A.I는 2개로 나눌 수 있다. Narrow A.I, General A.I 보통 할리우드 영화나 넷플릭스에서 나오는 A.I는 general A.I를 뜻한다. general A.I는 인간이 하는 행동을 할 수 있고, 혹은 인간보다 더 뛰어난 능력을 가지고 있다. 대화를 나눌 수 있고 게임을 할 수 있고 판단을 할 수 있고 인간과 같은 것이다. 하지만 현실에서는 또 현재 산업에서는 narrow A.I를 다루고 있다. narrow A.I는 단 한개만 할 줄 알고, 그것만 잘한다. 집중하는 범위가 좁은 것(narrow)이다. narrow A.I의 예시로는 페이스북의 얼굴 인식 기능이 있다. 하지만 그 뿐이다. narrow A.I 이므로 딱 한개만 잘 할 수 있다. 1. 머신러닝 이때 머..
0. Github Repository 생성 Vue-todo-app이라는 Repository를 생성하였다. 그 후 로컬에 vue-todo-app이라는 폴더를 하나 만들고 git clone [github repository address] 을 실행시켜주었다. 1. 저장소 백엔드를 구성하지 않는다는 가정하에 데이터를 저장하고 싶다면 개발자도구의 Application 탭에서 할 수 있다. localStorage.setItem([key값], [value값]) 은 로컬저장소에 저장하는 코드이다. v-model="inputText" => 화면에 있는 inputText를 Vue의 data에 연결해 놓은 것이다. v-on:keyup="addItem" => 키보드를 눌렀다가 뗄 때 addItem을 실행한다. v-on:ke..
0. 이벤트 state props 그리고 render 함수 event, state, props 3개가 서로 상호작용하면서 앱의 역동성을 만든다. React에서는 props의 값이나 state값이 바뀌면 해당되는 컴포넌트의 render함수가 호출되도록 약속 되어 있다. 그 얘기는 props나 state가 바뀌면 화면이 다시 그려진다는 것이다. 각각의 요소를 클릭하면 그 요소에 대한 content가 출력이 되도록 해보겠다. 아래는 코드 화면이다. 아래는 mode가 welcome일때의 웹페이지 화면이다. 아래는 mode가 read일 때 웹페이지 화면이다. 여기서 React 개발자 도구에 들어간 후 직접 값을 변경할 수 있다. 1. 이벤트 설치 태그에 이벤트 설치를 해보겠다. Subject.js에서 하는 것은 ..
0. 제목 백준 2875 대회 or 인턴 BOJ 2875 대회 or 인턴 C++ 2875 대회 or 인턴 1. 문제 https://www.acmicpc.net/problem/2875 2. 풀이 그리디 알고리즘을 사용하였다. 2명의 여학생과 1명의 남학생이 팀을 만들어야 하고 K명이 인턴쉽에 참여해야 한다. K명이 빠져야 하므로 여학생, 남학생에서 합하여 K명 만큼 모든 경우의 수대로 뺀다. 여학생 2명과 남학생 1명이므로 위에서 뺀 값을 각각 2와 1로 나눈다. 두 값중 작은 값이 만들어질 수 있는 팀의 수가 된다. 최대의 팀 수를 구해야 하므로 최대값과 만들어진 팀을 비교하면서 최대값을 갱신하고 최종 결과가 답이 된다. 다음과 같은 방식으로도 답을 구할 수 있다. min(N/2, M, (N+M-K)/3..
0. 문제 git push 를 하려는데 다음과 같은 Error가 발생하였다. 1. 해결 원인을 찾아보니 git respository에 README.md 파일을 생성했기 때문이었다. git pull 명령어로 github의 원격 레포지토리를 내 로컬로 불러와서(fetch) 합친다(merge) 그 후 git push 명령어로 다시 원격 레포지토리에 업로드 한다. git pull origin master -> git push origin master 위 코드를 실행해주면 해결된다. 위 작업을 하다가 실수로 원하지 않는 파일이 Github로 올라갔다. 그래서 다시 되돌리기 위해 다음과 같은 방법을 사용하였다. git reset --hard [commit id(git log에서 확인 가능)] 그 후 git push..
0. 제목 백준 2331 반복수열 BOJ 2331 반복수열 C++ 2331 반복수열 1. 문제 https://www.acmicpc.net/problem/2331 2. 풀이 DFS를 사용하였다. visited는 방문횟수를 저장하는 배열이다. 인덱스의 최댓값은 300000을 넘지 못하므로 visited[300001] 으로 크기를 설정하였다. dfs함수를 구현할 때 방문할때마다 visited[x]의 값을 1씩 증가시켜주었다. 그리고 if(visited[x]==3) retun; 에서 3일때 return 해야 하는 이유는 문제에서 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 구하라고 하였기 때문이다. 만약 2에서 return을 해버리면 반복되는 수들까지 개수에 포함이 된다. 그래서 3일때 ret..
0. State 소개 state라는 개념은 props와 비교해가면서 봐야한다. 어떤 제품에 있어서 사용자의 입장이 있고 구현자의 입장이 있을 것이다. props는 사용자가 장치를 조작하는 장치(핸드폰의 전원 버튼 등)이고 state는 제품을 만드는 구현자들은 내부적 조작장치(내부 칩, 회로 등)이다. 정리해보면 props는 사용자가 컴포넌트를 사용하는 입장에서 중요한 것이고 state는 그 props의 값에 따라서 내부 구현에 필요한 데이터들이 state이다. 컴포넌트를 만들었을 때 컴포넌트의 기능을 조작하는 것이 props이다. 컴포넌트의 사용자에게 중요함. 사용자들에겐 알 필요도 없고 알아서도 안되는 컴포넌트 내부적으로 사용되는 것들이 State이다. 1. State 사용 App.js에서 코드를 작성..
0. Library vs Framework Libray는 기능을 제공하는 모음이라고 하면 그 모음에 규칙을 넣은 것이 Framework이다. 아래 그림을 보면, 명시적 렌더링에서 하는 역할이 DOM Listener, Data binding 이다. 명시적 렌더링, 컴포넌트까지가 Library이다. Framework 기능을 할 때는 라우터라고 해서 화면을 이동하는 기술이 쓰이고, 상태관리 기능도 쓰인다. 정리해보면, Vue.js는 작은 화면단 라이브러리 역할부터 큰 규모의 웹 애플리케이션 개발을 돕는 프레임워크 역할까지 점진적으로 적용할 수 있는 프런트엔드 프레임워크이다. Vue.js Library 라인업을 보면 다음과 같다. Vue.js 코어, Vue Router, Vuew, Vue CLI, Vue Dev..
0. JavaScript/HTML JavaScript/HTML 방식을 보기 위해 vue > old.html 파일을 만든 후 코드를 작성하였다. str을 바꿀때마다 div.innerHTML = str; 을 써줘야 했다. 참고로 JavaScript의 기능에 대해서 구글링 할 때는 검색어 뒤에 MDN(Mozilla Developer Network)을 붙여주자. 공식문서이기 때문에 보다 정확한 정보를 얻을 수 있다. Obj를 추가하여 코드를 조금 더 작성해보고 결과를 확인해보았다. Reactivity의 특성을 볼 수 있다. event 로 JavaScript예시를 들어보자. 1. Vue Vue의 특성을 보기위해 vue > vue.html 파일을 만든 후 코드를 작성하였다. 2. 비교 참고로 Vue는 JavaScr..