[Python] 백준 알고리즘 온라인 저지 1874 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제를 이해하는데 시간이 좀 걸렸다. n값을 받고 수를 차례대로 입력할 때 입력한 수까지 스택에 넣었다가 그 수를 빼서 입력받는 수열을 만들 수 있는지 출력하는 문제로 중복으로 스택에 추가되지 않는다는 점을 신경 써야 한다. 예를 들면 n = 5 (3, ..
객체(Object) JavaScript 객체란 객체는 관련된 데이터와 함수(일반적으로 여러 데이터와 함수로 이루어지는데, 객체 안에 있을 때는 보통 프로퍼티와 메서드라고 부릅니다)의 집합입니다. 객체의 형태 key: value의 형태를 가지고 값을 여러개 쓸 때에는 ‘ , ’로 구분해 줍니다. [object Object]라는 값을 표시하여 구별할 수 있습니다. 프로퍼티 사용법 객체에서는 키값 즉 프로퍼티 값을 이용하여 데이터를 활용할 수 있습니다. 객체.프로퍼티 혹은 객체. 메서드의 형태로 값을 활용합니다. 이를 점 표기법(Dot Notation)이라고 합니다. 점 표기법(Dot Notation) person.name person.name[0] person.age person.interests[1] pe..
[Python] 백준 알고리즘 온라인 저지 11727 2×n 타일링 2 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 11726번의 후속 문제로 2x2타일이 추가되었다. 풀이 방법은 11726번 2×n 타일링 파이썬 풀이과 동일하게 동적 계획법과 점화식을 이용하여 풀이하였습니다. 코드 import sys input = sys.stdin.readline n = int(input()) dp = [0, 1, 3, 5] for i in range(4, n+1): dp.append..
엄격 모드(Strict Mode) JavaScript Strict mode 'use strict'; 엄격 모드를 실행하는 JS코드이다 JS를 작성하기 전에 한 번만 써주면 느슨 모드에서 엄격 모드로 쉽게 전환이 가능하다. Strict mode의 기능은 다음과 같다 기존에는 조용히 무시되던 에러들을 에러메세지를 발생시킵니다. JavaScript 엔진의 최적화 작업을 어렵게 만드는 실수들을 바로잡습니다. 가끔씩 엄격 모드의 코드는 비-엄격 모드의 동일한 코드보다 더 빨리 작동하도록 만들어집니다. 엄격 모드는 ECMAScript의 차기 버전들에서 정의될 문법을 금지합니다. 이러한 Strict mode는 함수와 모듈안에서만 사용할 수도 있다. Strict mode의 내용들은 MDN 사이트에 잘 정리되어 있으므로..
[Python] 백준 알고리즘 온라인 저지 11726 2×n 타일링 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net DP(동적 계획법)과 점화식을 이용하여 풀어야 하는 문제로 먼저 작은 수들의 경우의 수를 구해 이를 활용하여 코드를 작성하였다. 코드 import sys input = sys.stdin.readline n = int(input()) dp = [0, 1, 2, 3] for i in range(4, n+1): dp.append((dp[i-1] + (dp[..
[Python] 백준 알고리즘 온라인 저지 1463 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 동적 계획법을 이용해 풀어야 하는 문제로 재귀 같은 경우도 어렵다고 느꼈지만 이번 문제도 어렵다고 느꼈다. 3이나 2로 나눠지면 나누거나 1을 빼서 1로 만드는 최소한의 경우의 수를 구해야 하는 문제였다. 이 문제에서 DP를 사용하는 이유는 이전 경우의 수들의 값을 이용하기 위해 계산결과를 저장하고 그 값을 이용하기 위함이다. 코드 import sys import math input = sys.stdin.readline def dp(): x = i..