목록분류 전체보기 (77)
땃쥐네
문제 상황 백준의 2775번 문제를 풀고 있었다. 이 문제의 상황은 a층 b호에 사는 사람은 a-1층 1호부터 b호까지 사는 사람의 합만큼 사람이 살아야하는 규칙에서 n층 k호에 사는 사람의 수를 순서대로 출력하는 문제였다. (단, 0층 b호에는 b명이 산다.) 문제를 해결하기 위해서는 나는 바텀업 방식의 DP 알고리즘을 사용하기로 했다. numbers = [[0] * 15] * 15 for r in range(15): for c in range(15): if r == 0 or c == 0: numbers[r][c] = c else: numbers[r][c] = numbers[r][c-1] + numbers[r-1][c] print(f'{r}층 {c}호에는 {numbers[r][c]}명이 살아요.\n')..
이 글에서는 JavaScript 환경을 짤막하게 소개하고 이를 실습하기 위한 환경을 구축할 것이다. 자바스크립트 실행 환경 모든 웹 브라우저들은 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다. 또한 아래에서 후술할 Node.js 환경 역시 자바스크립트 엔진을 내장하고 있다. 자바스크립트는 브라우저 또는 Node.js 환경에서 실행될 수 있다. 더 정확히 말하면 이들은 자바스크립트의 코어에 해당하는 ECMAScript를 공통적으로 실행할 수 있다. ECMAScript : Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어. '자바스크립트'를 표준화하기 위해 만들어진 언어 각각의 브라우저는 ECMAScript 실행 ..
자바의 세계에 온 겻을 환영합니다. 1. JDK 설치 1.1 JDK? Java Development Kit, 자바 개발 도구 자바 어플리케이션을 개발하는데 필요한 도구들. 자세한 것은 뒷 부분에서 다루도록 함. 이걸 설치해야 자바 개발을 할 수 있다. 1.2 설치 Oracle에서 java 다운, 설치 : 링크 2023.01.29 기준 나는 최신의 LTS에 해당하는 jdk 17을 사용하고 있다. 실행 프로그램에서는 모두 yes를 눌러서 설치하면 됨 1.3 설치 확인 터미널에서 java --version을 입력해서 제대로 뜨는 지 확인 1.4 제거 제어판 > 프로그램 및 기능 > 프로그램 제거 또는 변경 jdk 제거 2. JDK의 bin 경로를 환경변수로 등록 사실 위의 JDK 설치만 놓고보면 그렇게 어렵진..
Python Installer 다운로드 - 다운로드 : https://www.python.org/downloads/ - 각 운영체제에 맞게 설치파일을 다운로드 받아 실행한다. Python 설치 'Add python.exe to PATH' 를 체크한다. 이 옵션은 python.exe를 환경 변수에 추가시키는 것인데 이후 터미널에서 python 명령어를 통해 파이썬 인터렉티브 셸을 사용할 수 있게 해준다. 그 외에는 크게 신경쓸 부분은 없고, 웬만한 것들은 '예'를 클릭해주면 된다. 이후 윈도우 기준 시작 메뉴에서 또는 터미널에서 python --version 명령어로 파이썬이 정상 설치된 것을 확인할 수 있다. PyCharm 설치 코딩 테스트를 위해 코드를 작성할 때 메모장 등을 통해 날코딩을 하는 방법도..
이 글은 - '강민철'님의 책 '혼자 공부하는 컴퓨터구조 + 운영체제' 책을 읽으며 학습한 내용을 정리합니다. CPU는 크게 ALU, 제어장치, 레지스터로 세 개의 부품으로 구성되어 있음 이번 장에서는 ALU, 제어장치에 대해서 다룬다. 1. ALU 1.1 ALU 계산만을 위해 존재하는 부품 컴퓨터 내부에서 수행되는 대부분의 계산(산술 연산, 논리 연산 등 다양한 연산)은 ALU가 도맡아 수행한다. ALU 내부에는 가산기, 보수기, 시프터, 오버플로우 검출기 등이 있으나 이러한 내용들은 이 책의 범위를 벗어나므로 깊이 다루지 않음 1.2 ALU의 연산에 필요한 것들 피연산자 : 연산에 필요한 데이터. 레지스터로부터 받는다. 제어신호 : 수행할 연산에 대한 전기 신호. 제어장치로부터 받는다. 2. ALU ..
문제 플랫폼 : 프로그래머스 번호 : 042889 제목 : 실패율 (2019 KAKAO BLIND RECRUITMENT 출제) 난이도 : Level 1 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성 문제 : 링크 필요 지식 Counter 사용 정렬 풀이 from collections import Counter from typing import List def solution(n: int, stages: List[int]): results = [[i, 0, 0] for i in range(0, n + ..
문제 플랫폼 : 백준 번호 : 02018 제목 : 수들의 합 5 난이도 : Silver 5 자연수 N을 연속된 자연수의 합으로 나타내는 가지수를 출력 문제 : 링크 필요 알고리즘 투포인터 0부터 시작한 연속된 정수에게 남은 수를 균등하게 분할하기 풀이 풀이1 : 투포인터 사용 n = int(input()) lt, rt = 1, 2 count = 1 # 자기 자신을 센 것 sum = 3 while lt 15 15 = (0 + 1) + 14 -> 연속된 숫자 2개에 14를 둘로 나눠서 분배 가능 (o) -> 7 + 8 15 = (0 + 1 + 2) + 12 -> 연속된 숫자 3개에 12를 셋으로 나눠서 분배 가능 (o) -> 4 + 5 + 6..
문제 플랫폼 : 백준 번호 : 24389 제목 : 2의 보수 난이도 : Bronze 1 2의 보수는 해당하는 숫자의 모든 비트를 반전시킨 뒤, 1을 더해 만들 수 있다. 이때, 32비트 기준으로 처음 표현했던 수와 그 2의 보수의 서로 다른 비트 수를 출력하기 문제 : 링크 필요 알고리즘 비트의 합 연산 두 비트 a, b가 있을 때 비트의 합 연산은 다음과 같다. carry_out은 자리 올림이고, sum은 해당 자리에 남는 수이다. carry_out : a and b sum : a xor b 풀이 bits_a = [True if bit == '1' else False for bit in bin(int(input()))[2:].rjust(32, '0')] bits_b = [not bit for bit i..