백준 11501번:주식
·
코딩테스트 연습
11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 이번 문제는 어렵게 생각해서 그런지 시간이 생각보다 오래 걸렸다. 총 3번에 걸쳐서 알고리즘을 바꿨다. 입력한 대로 정답은 제대로 나왔지만 문제는 시간 이었다. 지금부터 내가 풀었던 3개의 알고리즘을 설명해볼 생각이다. 1번째 알고리즘 테스트 케이스를 입력 받는다. 총 몇 일 동안 주식을 할 건지 입력할 건지 입력 받는다. 입력된 날들에 대해 반복하면서 각 날의 주식 가격을 입력받는다. max_element 알고리즘을 통해서 vector에서 가장 큰 ..
프로그래머스 전화번호 목록
·
코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번에는 Level2 문제를 풀어보았다. 이번에도 해시 문제를 풀어보았다. 문제를 읽어보면 처음에는 단순하게 접근하면 쉬울거라고 생각했다. 음…처음에 보고 문자열 비교니깐 그냥 for문으로 반복시켜주면 될거라고 생각했다. 근데 당연히 시간초과가 뜨겠지ㅎㅎ라는 생각을 가지며 그냥 무작정 코드를 작성하였다. 내가 생각한 알고리즘은 단순했다. 다음과 같다. 먼저 첫 번째 문자와 바로 다음 문자 길이를 ..
프로그래머스 완주하지 못한 선수
·
코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 간단한 문제이지만, 해시가 주제 이므로 해시 map을 이용해서 풀었다. 내가 생각한 알고리즘은 다음과 같다. 먼저 unordered_map을 이용하여 참가자 목록을 관리하기 위해 list를 선언해준다. 참가자 목록을 추가하고, 기존에 같은 이름이 있는지 확인 후, 있다면 값을 증가시킨다. 완주한 사람을 찾아서 해당 이름의 value값을 감소 시켜 준다. 감소시켜 0이 되면 list에서 제..
프로그래머스 포켓몬
·
코딩테스트 연습
프로그래머스 포켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 1 문제라 그런지 문제를 처음 봤을 때 생각보다 간단하게 구현이 가능할 거라고 생각했다. 내가 생각한 알고리즘은 다음과 같다. 새로운 벡터 v를 만듭니다. 함수에서 받아온 nums 배열의 값을 백터v의 인덱스로 사용하였다. 해당 인덱스를 1씩 증가시키도록 설정하였다. 그리고 0이 아닌 값을 가진 인덱스만 찾아, count를 증가시키는 반복문을 통해 백터v를 처리하였다...
import / export
·
Vue.js
서버가 있으면 서버에서 데이터를 받아와서 보여주는게 일반적이지만 우리는 그런게 없으니 가짜 데이터를 직접 준비했습니다. 위의 코드를 data() 란에다가 보관한 후 {{데이터바인딩}} 하면 되겠습니다. 하지만 데이터가 상당히 길어보입니다. 그대로 붙여넣으면 복잡해질 것 같으니 import/export 문법을 이용해서 다른 js파일에 보관한 뒤 가져오도록 합시다. export default / import 문법 어떤 js 파일에서 만든 변수나 자료를 다른 js 파일에서 사용하고 싶은 경우 export와 import 문법을 씁니다. 일단 다른파일에서 export 하셔야 다른 파일에서 import를 할 수 있습니다. 막번역을 하자면 수출을 해야 수입을 할 수 있습니다. 예를 들어서 oneroom.js 에 있는..
v-if 와 모달창 만들기
·
Vue.js
상품을 누르면 뜨는 상세페이지를 만들어볼 건데 실제 페이지를 다르게 이동시키는건 아니고 모달창 스타일로 만들어봅시다. ▲ 모달창이 뭐냐면 그냥 배경까맣고 안에 하얀 창있는 UI를 뜻합니다. 상품명을 클릭하면 이걸 띄워볼겁니다. 하지만 모달창만 배웠다고 모달창만 만들 수 있는 사람이 되면 안되기 때문에 Vue로 동적인 UI 만드는 Step을 설명해드리겠습니다. 1. 현재 HTML UI의 상태를 데이터로 저장해둠 (지금 보이는지 안보이는지 이런거) 2. 그 상태에 따라 HTML UI을 보여줄지 말지를 Vue문법으로 작성함 이것만 기억해두시면 모달창 말고도 탭, 서브메뉴 등 누르면 동작하는 UI들은 구글 도움 없이도 알아서 만들 수 있게됩니다. 말이 추상적이라 뭔지 아직 모르겠으면 모달창이나 따라 만들어봅시다..
Vue 이벤트 핸들러로 click 감지하기
·
Vue.js
어떤 HTML 요소를 클릭했을 때 뭔가 일이 일어나게 만들고 싶으면 이 안에 자바스크립트를 집어넣습니다. Vue에서는 살짝 다르게 집어넣으면 됩니다. @click="" 이걸 집어넣으면 됩니다. 문법만 설명하면 다음날 다 까먹을게 분명하니 저번시간까지 만들던 부동산 사이트에 허위매물 신고버튼과 기능을 만들어보며 배워봅시다. 허위매물 신고버튼과 신고수를 만들어봅시다 일단 저번시간 반복문 돌린건 복잡해보이니까 다시 원래대로 복구시킵니다. {{products[0]}} 50만원 {{products[1]}} 50만원 {{products[2]}} 50만원 여기다가 버튼을 하나 추가해보자는겁니다. {{products[0]}} 50만원 허위매물신고 신고수 : 0 이거 버튼을 누르면 옆에 있는 신고수가 1 증가하는 기능을..
Vue 반복문 v-for
·
Vue.js
HTML을 짜다보면 비슷한 이런게 수백번 출몰하지 않습니까. 그걸 보고 있으면 비슷한 들을 간단하게 for 반복문 같은 걸로 축약하고 싶은 충동이 들지 않습니까. 리액트나 Vue를 쓰면 가능합니다. 그리고 그런 장점 때문에 리액트와 Vue를 쓰는겁니다. 하지만 for, map, forEach 이런 문법 배우다 포기하셨다면 Vue 반복문은 100배 쉬우니 걱정하지 맙시다. 상단 메뉴를 만들어봅시다 페이지가 여러개 있는 것은 아니지만 심심하니 상단메뉴를 만들어봅시다. HTML과 CSS는 다음과 같이 작성합니다. CSS는 vue파일 하단 태그 안에 넣으면 됩니다. Home Products About .menu { background : darkslateblue; padding : 15px; border-rad..
Vue 데이터바인딩 문법
·
Vue.js
원룸파는 쇼핑몰을 한번 만들어봅시다. 일단 레이아웃 부터요. XX 원룸 XX 만원 XX 원룸 XX 만원 HTML 코드들은 안에 집어넣으면 됩니다. 자바스크립트 기능은 script 태그 안에 data(){ return { } } 이걸 열고 데이터를 object 형식으로 저장하시면 됩니다. 이게 Vue의 data보관함, 변수보관함이라고 보시면 되겠습니다. 중요한 데이터는 다 여기 보관하십시오. 중괄호니까 object 형식에 맞춰서요. 그럼 이제 price1 이라는 데이터를 HTML안에 꽂아넣어서 유저에게 보여주고 싶으면 {{ price1 }} 이것만 쓰면 됩니다. {{ price1 }} 만원 저장하면 브라우저에 60만원이라고 잘 뜹니다. Q. 뭐임 그냥 애초에 60만원 이렇게 하드코딩하면 되는데 굳이 데이터..
Vue3 설치
·
Vue.js
1. nodejs 최신버전 설치 우측 최신버전이 뭔가 에러가 덜 납니다. 그래도 에러나면 LTS 왼쪽 버전으로 바꾸실 수 있습니다. 제어판에서 삭제 후 재설치하면 됩니다. https://nodejs.org/en Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. VS code 에디터 설치 구글 검색해서 다운받고 설치 3. 아무데나 작업용폴더 만들고 에디터로 오픈 코딩실력이 부끄럽다면 은밀한 곳에 만들어줍니다. 에디터 상단 메뉴에 open folder라고 있을겁니다 그렇게 오픈하셈 ▲ 에디터 왼쪽 위에 아까 만든 폴더명이 떠야합니다. 4. 에디터에서 터미널 열고 npm install -g ..