728x90

전체 글 94

[백준/Python] 2961번: 도영이가 만든 맛있는 음식

https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 문제 분석 N개의 재료 중 몇 가지의 재료를 골라 음식을 만든다. 음식을 만들 때 재료의 신맛과 쓴맛이 정해지는데, 신맛은 사용한 재료의 신맛의 곱이고 쓴맛은 합이다. N개의 재료 중 몇 가지 재료를 고르는 방법은 N의 길이를 가진 집합의 부분 집합을 구하는 것이다. 단순 반복을 통해 파이썬 라이브러리인 combinations를 구하면 쉽게 구할 수 있겠지만 백트래킹 알고리즘..

알고리즘/백준 2023.01.30

[백준/Python] 1205번: 등수 구하기

https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 문제 분석 비오름차순으로 저장되어 있는 점수들 사이에 태수의 새로운 점수를 끼워넣는 문제. P가 주어지면 P는 랭킹 리스트의 길이이며, 새로운 점수가 점수 리스트에 들어간 뒤 새로운 점수의 앞에 점수가 P개 이상일 경우 -1을 출력한다. 새로운 점수가 리스트에 들어갈 때 같은 점수가 있다면 같은 점수의 맨 뒤에 들어가게 된다. 또한, N이 0보다 클 경우만 점수 리스트..

알고리즘/백준 2023.01.27

[Vue] 뷰 인스턴스

Do it! Vue.js ✏️ 뷰 인스턴스 뷰로 화면을 개발하기 위해 필수적으로 생성해야 하는 기본 단위 ✏️ 뷰 인스턴스 생성 뷰 인스턴스를 사용하기 위한 코드 new Vue({ ... }); 예제 // 인스턴스 new Vue({ // el 속성 el: '#app', // data 속성 data: { message: 'Hello Vue.js!' } }); 'Hello Vue.js!' 텍스트를 화면에 표시하기 위해 new Vue()로 뷰 인스턴스를 생성 인스턴스 안에 el 속성으로 뷰 인스턴스가 그려질 지점을 지정 data 속성에 message 값을 정의하여 화면의 {{ message }}에 연결 ✏️ 뷰 인스턴스 생성자 new Vue()로 인스턴스를 생성할 때 Vue를 생성자라고 함 Vue 생성자는 뷰..

[Vue] Vue란 무엇인가?

Do it! Vue.js ✏️ Vue.js를 사용하는 이유 "Vue.js의 초점은 더 많은 사람들이 쉽게 웹 앱을 만들 수 있도록 도와주는 데 있다." - 에반 유(Vue.js 창시자) 진입 장벽이 낮다 ✏️ Vue.js란? 웹 페이지 화면을 개발하기 위한 프런트엔드 프레임워크 뷰는 화면단 라이브러리이자 프레임워크라고도 볼 수 있음 ✏️ 뷰의 장점 배우기가 쉽다. 리액트와 앵귤러에 비해 성능이 우수하고 빠르다. 리액트의 장점과 앵귤러의 장점을 갖고 있다. ✏️ 뷰의 특징 1. UI 화면단 라이브러리 UI 화면 개발 방법 중 하나인 MVVM 패턴의 뷰 모델(ViewModel)에 해당하는 화면단 라이브러리 화면의 표현에 주로 관여하는 라이브러리이기 때문에 화면단 라이브러리라고도 함 MVVM 패턴이란 마크업 ..

[백준/Python] 2448번: 별 찍기 - 11

https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 문제 분석 별 찍기 문제는 재귀를 활용하면 쉽게 풀 수 있다. 재귀를 하기 위해서는 기준점과 재귀의 기준이 필요하다. 여기서는 시작점과 길이를 기준으로 재귀를 진행한다. 출력을 보면 높이가 3인 작은 삼각형이 3번 반복해서 큰 삼각형을 만들고 또 그 삼각형 3개가 모여 하나의 삼각형을 이룬다. 결론적으로 높이가 3일 때 삼각형을 만들어주면 쉽게 재귀를 진행할 수 있다. 처음 탐색을 할 경우, 총 길이 n을 탐색하고 n이 3이 될 때까지 2로 나누면서..

알고리즘/백준 2023.01.26

[백준/Python] 2866번: 문자열 잘라내기

https://www.acmicpc.net/problem/2866 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자 www.acmicpc.net 문제 분석 R개의 행과 C개의 열로 이루어진 테이블에서 열을 기준으로 단어를 만들어 총 R의 길이를 갖는 C개의 단어를 만든 후 단어들의 중복 여부를 확인한다. 처음에는 동일한 문자열이 존재하지 않는 입력이 주어지고 다음 연산부터는 가장 위의 행을 지운, 즉 단어의 첫 번째 문자를 없앤 단어들의 중복 여부를 판단한다. 단어들 중 중복이 없다면 count를 1 증가, 중복이 있다면..

알고리즘/백준 2023.01.24

[백준/Python] 14938번: 서강그라운드

https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 문제 분석 예은이의 위치에 따라 수색범위 안에서 방문할 수 있는 지역을 모두 탐색한 뒤, 그 지역에서 얻을 수 있는 아이템들의 합을 구하는 문제이다. 플로이드-워셜 대표적인 문제라고 볼 수 있을 것 같다. [플로이드-워셜 알고리즘] 하지만 알고리즘 분류를 보기 전에는 그래프 탐색만으로 충분히 풀 수 있어 보여서 그래프 탐색을 이용한 풀이를 작성하고자 한다. 우선, 모든 노드를 탐색하면서 그 노드에서 출..

알고리즘/백준 2023.01.21

[백준/Python] 1699번: 제곱수의 합

https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 문제 분석 N을 자기 자신보다 작거나 같은 제곱수들의 합으로 몇 개의 제곱수를 더해야 하는지 나타내는 문제 13을 예로 들면 13 = 3² + 2²이므로 2가 출력된다. 핵심은 자기 자신보다 작은 제곱수 중 가장 큰 제곱수를 빼면서 개수를 세면 된다. 하지만 가장 큰 제곱수를 뺀 뒤 또 제곱수를 찾아 빼는 연산을 반복한다면 시간 초과가 날 것이다. 다이나믹 ..

알고리즘/백준 2023.01.15

[백준/Python] 1019번: 책 페이지

https://www.acmicpc.net/problem/1019 1019번: 책 페이지 첫째 줄에 0이 총 몇 번 나오는지, 1이 총 몇 번 나오는지, ..., 9가 총 몇 번 나오는지를 공백으로 구분해 출력한다. www.acmicpc.net 문제 분석 단순 N 페이지까지 반복하면서 페이지를 문자열로 변환 후 각 페이지에 존재하는 숫자만큼 등장 횟수를 누적하기가 기본적인 알고리즘일테지만 이 문제의 N의 범위는 10억 이하이기 때문에 시간 초과(시간 복잡도: O(n²))가 나오게 된다. 수학적인 접근이 필요한데 이는 백준 사이트의 최백준님의 자료를 참고하여 해결했다. 우선 각 자릿수 별로 등장 횟수를 쪼개서 생각해야 한다. 위의 자료에서는 1~N 페이지가 아닌 A~B 페이지를 기준으로 설명하였기 때문에 ..

알고리즘/백준 2023.01.13

[모던 자바스크립트] 2.4 변수와 상수

https://ko.javascript.info/variables 변수와 상수 ko.javascript.info ✏️ 변수 변수(variable)는 데이터를 저장할 때 쓰이는 이름이 붙은 저장소 자바스크립트에선 let 키워드를 사용해 변수를 생성 아래 문(statement)은 message라는 이름을 가진 변수를 생성(선언) let message; 할당 연산자 =를 사용해 변수 안에 데이터를 저장 let message; message = 'Hello'; 문자열이 변수와 연결된 메모리 영역에 저장되었기 때문에, 변수명을 이용해 문자열 접근 가능 let message; message = 'Hello'; alert(message); // 변수에 저장된 값 출력 변수 선언과 값 할당을 한줄에 가능 let mes..

728x90