star7sss의 등록된 링크

 star7sss로 등록된 티스토리 포스트 수는 845건입니다.

[Pandas] 데이터셋의 특정 타입 열만 조회하는 select_dtypes [내부링크]

판다스(Pandas)의 데이터프레임에서 Type을 기준으로 열을 조회하는 select_dtypes에 대해 알아보겠습니다. [ Contents ] 1. select_dtypes DataFrame.select_dtypes(include, exclude) 특정 타입을 가진 열만 조회할 수 있는 함수입니다. dtypes는 data type의 준말로, select_dtypes는 함수 기능 그대로 특정 타입을 조회한다는 뜻입니다. 찾고자 하는 데이터타입은 include로, 제외하고자 하는 데이터타입은 exclude로 지정합니다. 2. 데이터프레임 데이터타입(dtypes) 1. 숫자형: 'number' 2. 문자형: 'object' 3. 날짜/시간: 'datetime' 4. 범주형: 'category' 판다스의 데이..

[Pandas] 데이터셋의 특정 행과 열을 추출하는 loc, iloc 함수 (feat. 조건식) [내부링크]

pandas의 데이터프레임에서 특정 조건의 행열을 뽑아내는 함수는 loc와 iloc가 있습니다. loc가 칼럼명을 사용한 조건으로 탐색한다면, iloc는 index loc로 인덱스로 탐색합니다. 두 방식의 차이점에 대해 자세히 알아보겠습니다. [ Contents ] 1. loc df.loc[n:m, 'col1':'col2'] loc는 location의 준말로, 특정 위치에 있는 데이터를 찾아주는 함수입니다. 리스트 슬라이싱처럼 df.loc[n:m]은 n행부터 m행까지 추출해줍니다. 2022.04.10 - [PL (Programming Language)/Python] - [Python] 리스트(List)란? 리스트 인덱싱(indexing)과 슬라이싱(slicing) [Python] 리스트(List)란? 리..

[Pandas] 데이터셋의 행과 열의 개수 확인 shape [내부링크]

판다스의 데이터프레임에서 행과 열의 크기를 보려면 shape 를 사용합니다. 이에 대해 알아보겠습니다. [ Contents ] 1. shape shape는 단어 그대로 데이터프레임의 틀(모양) 정보를 담고 있습니다. 데이터프레임은 행과 열로 이루어진 테이블 형식으로 데이터를 저장하므로 (행, 열)로 표시됩니다. 2. 데이터프레임 행, 열 확인 df.shape의 타입을 살펴보면 tuple입니다. 따라서 인덱스로 접근해서 행이나 열만 알아볼 수도 있습니다. df.shape[0]은 행의 개수, df.shape[1]은 열의 개수입니다.

[보안] 접근통제 종류: 강제적 접근통제(MAC), 임의적 접근통제(DAC), 역할기반 접근통제(RBAC) [내부링크]

접근통제 모델에는 '강제적 접근통제', '임의적 접근통제', '역할기반 접근통제'가 있습니다. 각 방식의 개념, 장단점에 대해서 알아보겠습니다. [ Contents ] 1. 강제적 접근통제 (MAC, Mandatory Access Control) 주체와 객체별 등급이 있으며, 등급에 따라 접근 권한을 부여하는 접근통제 여기서 '객체'는 접근하려는 시스템, 데이터 등을 나타내며 '주체'는 이를 접근하려는 사람이나 시스템을 의미합니다. 각 주체와 객체별로 보안 등급이 매겨져 있으며, 주체가 객체보다 등급이 낮으면 접근할 수 없습니다. 오로지 등급에 따라 접근 가능 여부가 결정됩니다. 흔히 영화에 나오는 군 기밀기지나 연구소의 '보안 카드'와 비슷합니다. 각 방의 출입권한과 보안 카드에는 '보안 등급'이 있고..

[보안] 공개키(비대칭) 암호: Rabin, ElGamal, ECC [내부링크]

공개키(비대칭) 암호 알고리즘에는 대표적으로 RSA가 있습니다. 하지만 이외에도 소인수 분해를 이용한 Rabin과 이산대수를 이용한 ElGamal 알고리즘, 타원곡선을 이용한 ECC 알고리즘이 있습니다. 이에 대해서 알아보겠습니다. [ Contents ] 1. 소인수 분해를 이용한 비대칭(공개키) 암호 알고리즘 1) RSA 2023.05.16 - [CS] - [보안] RSA의 개념과 특징, 예제: 소수를 이용한 비대칭키(공개키) 암호화 기법 [보안] RSA의 개념과 특징, 예제: 소수를 이용한 비대칭키(공개키) 암호화 기법 RSA 알고리즘에 대해서 알아보고, 암복호화하는 법과 그 예시를 살펴보겠습니다. [ Contents ] 1. RSA 소수를 이용한 비대칭키 암호화 알고리즘 RSA는 개발자들의 이름에서..

[Pandas] 엑셀파일 데이터셋으로 불러오기 (ft. 홈 디렉토리 확인) [내부링크]

판다스에서 엑셀 파일을 데이터프레임으로 불러오는 방법을 소개합니다. 또한 잘못된 파일경로를 입력하지 않도록, 홈 디렉토리를 찾는 방법도 알아봅니다. [ Contents ] 1. 데이터셋 불러오기 import pandas as pd data = pd.read_csv('data/example.csv') csv파일을 pandas의 DataFrame으로 불러오는 함수입니다. csv파일은 ','(콤마, comma) 를 구분자로 나열된 엑셀파일입니다. 일반적인 xlsx 형식과는 다르므로, 해당 파일형식으로 바꾼 뒤 사용하시기 바랍니다. 2. 유효한 파일경로 찾기 pd.read_csv(파일경로) 머신러닝이나 딥러닝, 데이터 시각화를 처음 배우는 사람들이 가장 어려워하는 부분이기도 합니다. 왜냐하면 개발환경에 따라 유..

[구현/수학] 백준 10810 공 넣기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 2. 문제 풀이 N개의 바구니가 있고, M번 덮어쓰기 작업을 실시합니다. i부터 j까지의 바구니에 k를 덮어쓰기 하며, 마지막에 남는 바구니 결과를 출력합니다. 3. 코드 N, M = map(int, input().split()) lst = [0]*N for _ in range(M): i, j, k = map(int, input().split())..

[구현/수학] 백준 28061 레몬 따기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 28061번: 레몬 따기 성우는 숲에서 레몬을 따와야 한다. 숲은 하나의 수직선으로 표현할 수 있고, 여기에는 레몬 나무 \(N\)그루가 \(x=1\)부터 \(x=N\)까지 일정한 간격으로 자라 있다. 성우는 현재 \(x=0\)에 있으며, 집은 www.acmicpc.net 2. 문제 풀이 x = 1부터 x = N까지 레몬나무 N그루가 있으며, 각 나무마다의 레몬 개수가 주어집니다. 성우는 딱 1개의 레몬나무에서만 채집할 수 있으며, 채집 후에는 도착지(x = N)까지 1씩 이동할 때마다 1개씩 잃게 됩니다. 이때, 최대로 채집할 수 있는 레몬의 개수를 구합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = ..

[구현/수학] 백준 28135 Since 1973 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 28135번: Since 1973 $N$이 주어진다. $(1 \leq N \leq 1\, 000\, 000)$ www.acmicpc.net 2. 문제 풀이 N이 처음으로 등장하는 때를 구하는 문제입니다. 예를 들어 N이 15이면, '15'0, '15''15' 등 다양한 수가 나올 수 있으나 처음으로 등장하는 때는... 당연히 15입니다. 따라서 N이 나오는 때를 구하면 됩니다. 다만, 50이 들어가면 그 수를 한 번 더 셉니다. 이를 고려하여 N이 처음으로 나오는 때를 구합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) # 50이 들어가면 +1 res = 0 for i in ran..

[구현/수학] 백준 6840 Who is in the middle? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6840번: Who is in the middle? In the story Goldilocks and the Three Bears, each bear had a bowl of porridge to eat while sitting at his/her favourite chair. What the story didn’t tell us is that Goldilocks moved the bowls around on the table, so the bowls were not at the right seats www.acmicpc.net 2. 문제 풀이 세 수를 입력받아 중간값을 구하는 문제입니다. 3. 코드 import sys import math input = ..

[보안] 방화벽의 개념과 방화벽의 작동 방식: 인바운드 규칙, 아웃바운드 규칙, 블랙리스트, 화이트리스트 [내부링크]

방화벽은 미리 정의된 정책에 따라 트래픽을 차단하거나 허용하는 시스템입니다. 정책에서는 어떤 IP와 포트로 들어오는지에 따라 차단 여부를 정하며, 크게 인바운드 규칙과 아웃바운드 규칙이 있습니다. 이에 대해서 자세히 알아보겠습니다. [ Contents ] 1. 방화벽 (Fire Wall) 미리 정의된 보안규칙에 의거하여, 트래픽을 모니터링하고 제어하는 보안 시스템 화재현장에서 불길과 연기를 막는 방화벽처럼, 외부로의 공격과 악성 트래픽을 막는 네트워크 보안 시스템입니다. 대부분의 방화벽은 '정책(규칙)' 기반으로 설정되어 있고, 이 정책에 따라 트래픽을 허용 또는 차단합니다. 컴퓨터를 사용하다보면, 이런 팝업창을 보곤 하죠. 이는 방화벽 정책에 의해 차단된 경우입니다. 대부분의 방화벽은 성악설을 믿는 신..

[보안] 패스워드 공격유형: 사전공격, 무차별 공격, 백도어, 사회공학, 스니핑, 패스워드 파일 접근 [내부링크]

요약 [ Contents ] 1. 사전 공격 (Dictionary Attacks) 패스워드로 사용할 만한 문자열을 사전(Dictionary)으로 만들고, 이를 하나씩 대입하는 공격 방식 군대의 비밀번호는 q1w2e3r4! 아니면 q1w2e3r4@이라는 설이 있을 정도로, 자주 사용하는 비밀번호 패턴이 있죠. 이를 모아둔 파일이 '패스워드 사전'입니다. 사전에 있는 문자열을 하나씩 사용하면서 패스워드 알아내는 공격방식입니다. 사전 공격의 대응책은 '솔트(Salt)'입니다. 패스워드는 고유값이 아니기 때문에, 동일한 패스워드가 있을 수 있으며 해시값도 동일합니다. 이는 해커에게 힌트가 될 수 있으며, 미리 계산한 해시값을 사용해서 패스워드를 알아낼 수 있습니다. 따라서 각 패스워드에 고유한 솔트값을 주어, ..

[네트워크] 서브넷을 합치는 슈퍼넷팅과 CIDR의 개념과 예제 [내부링크]

서브넷을 합쳐서 더 큰 IP주소를 확보하는 슈퍼넷팅에 대해서 알아보고, 클래스를 고려하지 않아도 되는 CIDR 방식도 알아보겠습니다. [ Contents ] 1. 슈퍼넷팅 (Supernetting) IP주소 공간을 더 크게 통합하는 작업 서브넷팅이 잘게 분할하는 작업이었다면, 슈퍼넷팅은 서브넷들을 통합하는 작업입니다. 네트워크를 쪼갠 서브넷 정보는 라우팅 테이블에 저장되며, 서브넷이 많을수록 테이블 탐색 시간이 길어지고 테이블 관리가 힘들어집니다. 그래서 슈퍼넷팅을 통해서 라우팅 테이블에 등록되는 경로 수를 줄이고, 라우팅 프로세스의 효율성을 향상시키곤 합니다. 2023.05.17 - [CS] - [네트워크] 서브네팅의 개념과 VLSM 예제, 서브넷마스크 이용법 [네트워크] 서브네팅의 개념과 VLSM 예..

[네트워크] 서브네팅의 개념과 VLSM 예제, 서브넷마스크 이용법 [내부링크]

서브넷팅은 IP주소 공간을 분할하여 할당하는 방식입니다. 그 방식에는 VLSM이 있으며 이를 이용하여 최적의 주소공간을 확보할 수 있습니다. VLSM을 사용한 예제를 살펴보고, 서브넷마스크도 배워보겠습니다. [ Contents ] 1. 서브넷팅 (Subnetting) IP주소 공간을 더 작게 분할하는 작업 서브넷(Subnet)은 네크워크 비트와 호스트 비트로 구성되어 있으며, 네트워크 비트가 같으면 동일한 네트워크로 간주합니다. 흔히 A, B, C, D, E 클래스라고 불리는 주소공간도 서브넷의 일종이며, 더 작은 네트워크로 쪼개는 작업을 서브넷팅이라고 합니다. 2023.05.16 - [CS] - [네트워크] 클래스별 IP주소 분류(A, B, C, D, E 클래스)와 공인 IP, 사설 IP [네트워크] ..

[보안] RSA의 개념과 특징, 예제: 소수를 이용한 비대칭키(공개키) 암호화 기법 [내부링크]

RSA 알고리즘에 대해서 알아보고, 암복호화하는 법과 그 예시를 살펴보겠습니다. [ Contents ] 1. RSA 소수를 이용한 비대칭키 암호화 알고리즘 RSA는 개발자들의 이름에서 유래되었으며, 소수를 이용한 대표적인 공개키 알고리즘입니다. 2023.05.15 - [CS] - [보안] 대칭키 방식과 비대칭키(공개키) 방식: 개념과 장단점, 차이점 [보안] 대칭키 방식과 비대칭키(공개키) 방식: 개념과 장단점, 차이점 암호통신에서는 암호화하여 데이터를 전송합니다. 마치 자물쇠와 같이, 데이터를 암호화하고 복호화할 때에도 '키(열쇠)'를 사용합니다. 이러한 키에는 크게 '대칭키' 방식과 '비대칭키(공개키)' star7sss.tistory.com RSA에서 소수를 사용하는 이유는, 소인수분해하고 소수를 판..

[네트워크] 클래스별 IP주소 분류(A, B, C, D, E 클래스)와 공인 IP, 사설 IP [내부링크]

네트워크는 크게 5가지 클래스로 나뉘어 있습니다. 각 클래스별 특징을 알아보고, 공인IP와 사설IP의 개념과 주소 대역을 살펴보겠습니다. [ Contents ] 1. 클래스별 IP주소 분류 IPv4 주소체계에서 네트워크는 크게 5가지 클래스로 나뉘어져 있습니다. 1) 클래스 A A 클래스는 네트워크 비트가 0으로 시작하며, 총 8bit를 차지합니다. (4분의 1) IP주소는 0.0.0.0부터 127.255.255.255까지이며 호스트 부분이 가장 큰 클래스이므로, 대규모 네트워크에서 사용합니다. 2) 클래스 B B 클래스는 네트워크 비트가 10으로 시작하며, 총 16bit를 차지합니다. (2분의 1) IP주소는 128.0.0.0부터 191.255.255.255까지이며, 중간규모의 네트워크에서 사용됩니다...

[보안] 스니핑, 스누핑, 스푸핑의 개념과 차이점, 종류: IP, MAC, ARP, DNS 스누핑 [내부링크]

스니핑, 스누핑, 스푸핑은 이름이 비슷한 공격 기법입니다. 개념도 비슷해서 오해하기 쉬운 세 용어를 자세히 알아보겠습니다. [ Contents ] 1. 스니핑 (Sniffing) 네트워크 상 정보를 몰래 훔쳐보는 행위 sniff는 '코를 킁킁거리다'라는 뜻으로, 데이터를 몰래 훔쳐보는 행위입니다. 네트워크 상 데이터는 '패킷(Packet)' 단위로 전송되며, 오고가는 패킷들을 가로채서 분석하거나 저장합니다. 개인정보나 패스워드와 같이 민감한 정보도 당연히 패킷을 통해 오가며, 스니핑에 의해 탈취될 수 있습니다. 2. 스누핑 (Snooping) 네트워크 상 정보를 감시, 분석하는 행위 spoof는 '염탐하다'라는 뜻으로, 스니핑과 개념이 비슷해서 종종 혼용해서 사용하기도 합니다. 스니핑이 패킷을 통해 '정..

[보안] 파일 접근권한과 chmod, umask 명령어 사용법 (문자, 숫자 표기법) [내부링크]

유닉스/리눅스 계열 서버에서 파일의 접근권한은 chmod와 umask 명령어로 관리합니다. 파일 접근권한에 대해 먼저 알아보고, 파일 접근권한을 변경할 수 있는 chmod 명령어와 기본값을 설정하는 umask 명령어에 대해 알아봅니다. [ Contents ] 1. 파일 접근권한 파일 접근권한은 총 12비트로 구성되어 있습니다. 특수권한, 소유자, 그룹, 외부 사용자별로 3bit씩 할당되어 있어 보통 8진수로 표현합니다. r은 Read(읽기), w는 Write(쓰기), x는 eXecution(실행)으로 각 비트로 해당 권한의 유무를 정의합니다. 예를 들어 5은 8진수로 101이며 rwx에서 읽기와 실행 권한만 있고 쓰기 권한은 없는 경우입니다. suid (setuid) 소유자(user) 권한의 실행(x) ..

[보안] 접근통제(Access Control) 3단계: 식별, 인증, 인가 [내부링크]

인가된 사용자만 시스템에 접근을 허용하는 것을 '접근 통제'라고 합니다. 접근 통제는 식별, 인증, 인가 3단계를 거치며 아래에서 자세히 알아보겠습니다. [ Contents ] 1. 식별 (Identification) 접근을 요청한 사용자를 식별하는 작업 흔히 '아이디(ID)'라 불리는 영문의 풀네임은 'Identifier'로 식별자입니다. 자신을 식별할 수 있는 아이디를 시스템에 제시하며, 시스템은 해당 아이디가 있는지 찾습니다. 여기서 아이디는 통상적인 문자열, 번호(학번/사번), 생체정보(지문, 홍채), 출입카드 등 다양한 요소가 될 수 있습니다. 2. 인증 (Authentication) 해당 ID의 사용자가 맞는지 확인하는 작업 보통 패스워드(Password)로 많이 인증합니다. 로그인을 하기 위..

[보안] 전자서명의 개념과 주요 기능: 위조불가, 인증, 부인 방지, 변경 불가, 재사용 불가 [내부링크]

전자서명의 개념과 그 주요 기능을 알아보겠습니다. [ Contents ] 1. 전자서명 개념 전자문서에 남긴 서명 통상 서명과 일맥상통합니다. 그저 오프라인 문서가 아니라, 온라인 전자문서에 남기는 것뿐입니다. 주로 확인, 결재, 승인에 사용되며 공문서에도 흔히 볼 수 있습니다. 2. 전자서명의 주요 기능 흔히 '계약서'를 쓰는 이유는 나중에 부인하지 못하도록, 증거를 남겨두기 위함입니다. 계약서 내용이나 자신이 한 서명을 부인하지 못하도록 전자서명은 아래와 같은 기능을 지원합니다. 1) 위조 불가 (Unforgeable) 적법한 서명자만이 전자서명 생성 가능 2) 인증 (User authentication) 전자서명 서명자를 누구든지 검증할 수 있어야 함 3) 부인 방지 (Non-repudiation)..

[보안] 대칭키 방식과 비대칭키(공개키) 방식: 개념과 장단점, 차이점 [내부링크]

암호통신에서는 암호화하여 데이터를 전송합니다. 마치 자물쇠와 같이, 데이터를 암호화하고 복호화할 때에도 '키(열쇠)'를 사용합니다. 이러한 키에는 크게 '대칭키' 방식과 '비대칭키(공개키)'방식이 있으며 이에 대해 알아보겠습니다. [ Contents ] 1. 대칭키 방식 암호화 키 = 복호화 키 자물쇠를 잠구는 열쇠와 여는 열쇠는 통상적으로 같죠. 이와 같이 암호화할 때와 복호화할 때의 키가 같은 방식을 '대칭키 방식'이라고 합니다. 다만 이 경우에는 암호문과 '키'를 같이 수신자에게 전달해야 한다는 문제가 있습니다. 아무리 비싼 자물쇠를 쓰더라도, 키를 도난당하면 말짱 도루묵이죠. 2023.05.12 - [CS] - [보안] 키 배송 문제와 해결방안: 사전 공유, 키 배포센터, Diffie-ellman..

[데이터통신] 다중화 방식: 주파수(FDMA), 시간(TDMA), 코드(CDMA) [내부링크]

한 개의 통신회선(링크)으로 여러 신호를 동시에 전송할 수 있게 해주는 기술을 '다중화(Multiplexing)'라고 합니다. 다중화 기술에는 FDMA, TDMA, CDMA가 있으며 이에 대해 알아보겠습니다. [ Contents ] 1. 주파수 분할 다중화 (FDMA, Frequency Division Multiple Access) 각 신호를 주파수로 분류하여 전송하는 방식 전송 신호들의 대역폭을 합한 것보다 링크의 대역폭이 클 때 사용합니다. 주파수 구간으로 구분하기 때문에, 구조도 간단하고 비용도 저렴합니다. 별도의 변복조장치가 필요없습니다. 다만, 완충지대(보호대역, Guardband)가 신호 사이에 두어 서로 간섭이 일어나지 않도록 해야합니다. 2. 시간 분할 다중화 (TDMA, Time Divi..

[데이터통신] 체크섬, 순환 중복 검사(CRC)를 이용한 오류 검출 방식 [내부링크]

수신 측에서는 오류가 없는지 확인작업을 하며, 그 방식에는 패리티 비트, 체크섬, CRC 등이 있습니다. 이번 포스팅에서는 덧셈을 이용한 체크섬과 나눗셈을 이용한 CRC 방식에 대해서 알아보겠습니다. [ Contents ] 1. 체크섬 (Check Sum) 각 bit의 합을 끝에 덧붙여, 오류를 검출하는 방식 패리티 비트가 홀수/짝수로 오류를 검출했다면, 체크섬은 합계로 오류를 검출합니다. 맨 끝에 합계를 덧붙여서 수신자가 확인할 수 있도록 해주죠. 하지만 합계가 너무 클 경우에는 정해진 비트 수를 초과하게 됩니다. 그래서 아래와 같은 방식으로 일정한 크기의 체크섬을 만들어줍니다. 1. 각각의 합을 구한다. 2. 합이 m비트를 보다 크다면 m마다 끊어서 더한다. (보통 m=4) 3. 1의 보수로 만든다...

[보안] 키 배송 문제와 해결방안: 사전 공유, 키 배포센터, Diffie-ellman 알고리즘, 공개키 암호 [내부링크]

암호화된 평문을 해독하기 위해서는 '복호화 키'가 필요하며, 이를 수신자에게만 은밀히 전달해야합니다. 이를 위해 '사전 공유', '키 배포센터', '디피 헬만 키 교환 알고리즘', '공개키 암호' 방식이 사용되며 아래에서 자세히 알아보겠습니다. [ Contents ] 1. 키 배송 문제 복호화 키 전달 시 도청 및 해킹의 위험성 암호문과 복호화 키를 같이 전달하는 건, 마치 문제지와 정답지를 같이 주는 것과 같습니다. 복호화 키까지 탈취당하면 어렵게 암호화한 이유가 없으므로, 키 배송은 아래의 방법을 사용하여 전달합니다. 2. 키 배송 문제 해결방안 1) 사전 공유 키 관리기관에서 미리 복호화 키를 전달하는 방법으로, 이 역시 탈취될 가능성은 있습니다. 기본적으로 모든 사용자 간 복호화 키를 전달할 비밀..

[보안] 블록 암호: AES와 DES 대칭키 암호화 방식 개념과 구조 [내부링크]

블록 암호 알고리즘이자, 대칭키 암호 알고리즘으로 유명한 AES와 DES에 대해서 알아보겠습니다. [ Contents ] 1. DES (Data Encryption Standard) 64bit(8byte) 블록단위로 라운드 함수를 16번 반복하는 암호 알고리즘 DES는 평문을 같은 크기의 암호문(8byte)으로 바꾸는 대칭키 암호 알고리즘입니다. 물론 7bit마다 오류검출을 위한 검증비트(1bit)가 들어가므로, 정확히는 56bit의 키 길이를 갖습니다. 16단계의 페이스텔 네트워크(Feistel Network)를 사용하며, 쉽게 말하자면 라운드 함수라는 걸 16번이나 반복해서 평문을 얻기 어렵게 만든 알고리즘입니다. 당연히 라운드 함수를 거꾸로 16번 반복하면 평문이 구해집니다. 과거에는 64bit의 ..

[디지털논리] 부울대수의 기본법칙: 교환, 결합, 분배, 드로르간, 흡수 규칙 [내부링크]

부울대수의 기본법칙에 대해서 알아보겠습니다. 부울대수는 0과 1로 이루어진 논리식을 계산하는 공식을 다룹니다. [ Contents ] 1. 교환법칙, 결합법칙 A + B = B + A A*B = B*A (A+B)+C = A+(B+C) (A*B)*C = A*(B*C) 부울대수는 0(False)과 1(True)을 사용한 논리식입니다. True, False만 가능한 Bool(Boolean) 타입도 여기서 나왔습니다. 부울대수도 교환법칙과 결합법칙이 허용되며 +는 OR연산, *는 AND연산을 뜻합니다. 2. 분배법칙 A*(B+C) = A*B + A*C A+(B*C) = (A+B) * (A+C) 부울대수에서 AND(*)의 OR(+)의 연산 우선순위는 같습니다. 따라서 A+(B*C)도 (A+B) * (A+C)로 분..

[보안] 스트림 암호와 블록 암호의 개념과 장단점 [내부링크]

암호화 알고리즘에는 스트림 암호기법과 블록 암호기법이 있습니다. 이에 대해 알아보고 장단점을 비교합니다. [ Contents ] 1. 블록 암호 평문을 블록 단위로 나누어서 암호화하는 방식 블록 단위로 암호화하며, 여러 암호화 과정을 거치기 때문에 암호화 강도가 높지만 속도는 느립니다. 또한 블록 단위로 여러 번 암호화하기 때문에 중간에 생긴 에러가 전파되는 단점이 있습니다. 한편, 어떤 암호화 과정을 거쳤는지 추론하기가 어려운 장점이 있습니다. (높은 확산[Diffusion]) 해시함수(SHA-256, SHA-512)도 블록 암호화 기법이며 기밀성이 높아 일반적인 데이터에 많이 쓰입니다. 그 외 블록 암호기법에는 DES, AES, IDEA, SEED, RC5가 있습니다. 2. 스트림 암호 평문을 문자(..

[보안] 정보보호의 목표: 기밀성, 무결성, 가용성, 인증성, 책임추적성, 부인방지 [내부링크]

정보보호의 목표에 대해서 알아봅니다. 정보보호 목표에는 기밀성, 무결성, 가용성, 인증성, 책임추적성, 부인방지가 있으며 이에 대해 알아보겠습니다. [ Contents ] 1. 기밀성 (Confidentiality) 필요성에 근거하여 인가된 접근만 허용 인가된 사람, 프로세스, 시스템만이 접근할 수 있습니다. 2. 무결성 (Integrity) 무단 생성, 변경되거나 삭제되지 않도록 보호 적합하지 않은 방법으로 정보가 조작되지 않도록 보호해야 합니다. 3. 가용성 (Availability) 적합한 사용자가 정보시스템을 지체 없이 사용 정당한 사용자는 긴 대기 없이, 정보시스템에서 원하는 서비스를 이용할 수 있어야 합니다. 만약 DDOS공격이나 자연재해 등으로 시스템에 접근할 수 없다면, 이 역시 가용성이 ..

[데이터통신] 패리티 비트를 이용한 오류 검출 방식: 수직 중복 검사(VRC), 수평 중복 검사(LRC) [내부링크]

수신측에서는 보내온 신호가 정상인지 확인을 합니다. 이때 패리티 비트라는 검증 비트를 사용하기도 합니다. 패리티 비트를 활용한 수직 중복 검사, 수평 중복 검사에 대해 알아보겠습니다. [ Contents ] 1. 패리티 비트(Parity bit) 오류 검사를 위해 추가된 비트 0101011101 와 같이 신호가 전달되므로, 0과 1이 바뀌거나 빠지고 추가되더라도 찾아내기 어렵습니다. 그래서 정상적으로 전송되었는지를 확인하기 위해, '패리티 비트'를 추가합니다. 보통 8bit마다 패리티 비트(1bit)를 추가하며, '홀수 패리티'나 '짝수 패리티' 규칙에 따라 패리티 비트를 설정합니다. 홀수(Odd) 패리티: 1의 개수가 홀수 짝수(Even) 패리티: 1의 개수가 짝수 패리티 비트를 포함하여 전체 1의 개..

[데이터통신] 전송속도와 전송량: 변조속도(Baud), 데이터 전송속도(bps), 나이퀴스트 정리, 샤논 정리 [내부링크]

데이터통신에서 전송속도와 전송량을 구하는 공식을 알아봅니다. [ Contents ] 1. 변조 속도 (Baud) Baud = bps / (단위 펄스 당 변조된 비트 수) Baud는 1초동안 변조하는 횟수를 뜻하며, 초당 펄스 수라고도 합니다. 여기서 펄스(Pulse)란 일정 주기로 반복되는 일련의 파형을 말하며, 영미권에서는 심장박동을 'pulse'라고 가리킵니다. 펄스에 담을 수 있는 비트가 많을수록, 당연히 변조 속도가 빠릅니다. 위 예시는 진폭의 높이로 0과 1을 구분하는 ASK방식이며, 진폭이 높으면 1 낮으면 0입니다. 따라서 단위 펄스 당 1bit의 정보밖에 담을 수 없습니다. 반면 PSK나 QAM 등을 이용하면 4bit 이상의 정보도 담을 수 있으므로, baud가 높습니다. 2023.05.1..

[데이터통신] PCM: 표본화(샘플링), 양자화, 부호화, 복호화, 여과(필터링) [내부링크]

아날로그 신호에서 디지털 신호로, 디지털 신호에서 아날로그 신호로 복원하는 PCM과정을 살펴보겠습니다. [ Contents ] 1. PCM(Pulse-Code Modulation, 펄스 부호 변조) 아날로그 신호를 디지털 신호로 변조하는 방식으로, 신호를 일정한 간격으로 측정해서 이진코드로 바꾼 기법 아날로그 신호를 모두 기록하려면 상당한 용량이 필요합니다. 하지만 신호에는 일정한 패턴이 있고 일부분만 기록해도 다시 복원할 수 있습니다. 이를 이용한 변조기법입니다. PCM은 표본화(Sampling), 양자화(Quantiation), 부호화(Encoding) 과정을 거쳐 아날로그 신호에서 디지털 신호로 변조하며 복호화(Decoding), 여파화(Filtering) 과정을 거쳐 다시 복원합니다. 1) 표본화..

[데이터통신] 디지털 - 아날로그 신호 변환: ASK, FSK, PSK, QAM [내부링크]

디지털 신호를 아날로그 신호로 변환하는 방식에는 크게 4가지가 있습니다. 진폭(ASK), 주파수(FSK), 위상(PSK), 진폭(QAM)을 이용한 변조방식이 있으며 이에 대해 알아보겠습니다. [ Contents ] 1. ASK (진폭 편이변조, Amplitude Sheft Keying) 디지털 신호를 반송파의 진폭에 대응시켜 변조시키는 방법 반송파는 영어로 'Carrier signal'이며, 보내고자 하는 신호를 싣는 Carrier 역할을 합니다. 고주파성분은 노이즈의 영향을 덜 받고 장거리 전송이 가능합니다. 따라서 디지털 신호를 아날로그 신호로 변조할 때, 반송파를 사용하게 됩니다. ASK는 반송파의 '진폭'에 대응시켜 변조하는 방법으로, 진폭으로 0과 1을 구분합니다. 반송파는 고주파성분으로 사인(..

[컴퓨터구조] 연산 속도와 메모리 용량의 단위와 호칭: KB, MB, GB, ... [내부링크]

컴퓨터 연산속도와 메모리 용량의 단위와 호칭에 대해서 알아보겠습니다. [ Contents ] 1. 연산속도 단위 ms (milli 밀리) 10e-3 us (micro 마이크로) 10e-6 ns (nano 나노) 10e-9 ps (pico 피코) 10e-12 fs (femto 펨토) 10e-15 as (atto 아토) 10e-18 1초는 1000ms로, 0을 3개씩 붙이며 내려갑니다. 보통 프로그램이나 쿼리의 실행속도는 ms(밀리/초)에 그치지만, 슈퍼컴퓨터의 연산속도를 측정할 때에는 이하 단위들도 쓰게 됩니다. 보통 슈퍼컴퓨터의 연산속도는 플롭스(FLOPS, 1초당 처리할 수 있는 부동소수점 연산횟수) 단위를 사용하며, 속도보다는 1초당 수행가능한 연산횟수를 측정하는 경향이 있습니다. ms > us > ..

[데이터통신] 전송형식: 베이스밴드(기저대역)와 브로드밴드(광대역) [내부링크]

데이터 통신의 2가지 전송형식에는 '베이스밴드'와 '브로드밴드' 방식이 있습니다. 이에 대해서 살펴보겠습니다. [ Contents ] 1. 베이스밴드 (Baseband, 기저대역) 디지털 신호를 변조없이 그대로 전송하는 방식 디지털 신호는 장거리 전송이 어렵고, 노이즈에 쉽게 변형되는 특성을 갖고 있습니다. 따라서 근거리 전송에 이용되며, TDMA(시분할 다중화) 방식을 이용합니다. 매체는 꼬임선, 동축케이블을 사용하며, Half-Duplex(반이중 통신)을 지원합니다. ※ Half-Duplex(반이중 통신): 양방향 통신이 가능하지만, 동시에 송수신은 불가능 (ex 무전기, WiFi) 2. 브로드밴드 (Breadband, 광대역) 디지털 신호를 아날로그 신호로 변환하여 전송하는 방식 아날로그 신호는 노..

[SW공학] CASE 자동화 도구의 개념과 종류 [내부링크]

CASE 자동화 도구에 대한 개념과 그 종류에 대해서 알아보겠습니다. [ Contents ] 1. CASE (Computer Aided Software Engineering) 소프트웨어 개발 방법론의 자동화를 지원하는 일련의 도구 CASE는 프로젝트 계획, 요구 분석, 설계부터 프로그래밍, 테스트까지 자동화한 통합 개발 도구입니다. 모든 단계에 걸쳐 일관된 방법론을 지원하며, 개발 속도와 편의성이 올라가는 장점이 있습니다. 정형화된 구조와 방법을 사용하기 때문에, 대규모 시스템 구축 업무도 효율적으로 할 수 있다고 합니다. 2. CASE 분류 상위 CASE: 프로젝트 계획 수립, 요구 분석, 설계 중위 CASE: 자료 설계 하위 CASE: 프로그래밍, 설계 (DB) 프로그래밍 뿐만 아니라, 문서 작성까지..

[SW공학] 리팩토링과 소프트웨어 역공학(리버스 엔지니어링) [내부링크]

기존 소프트웨어의 유지보수를 용이하게 하기위해, 리팩토링과 소프트웨어 역공학을 수행합니다. 이러한 작업에 대해서 알아보겠습니다. [ Contents ] 1. 리팩토링 (Refactoring) 기능(동작) 변경 없이, 코드 가독성 향상이나 유지보수가 용이하도록 하는 작업 리팩토리는 성능 향상을 위해 하는 작업이 아닙니다. '코드 다듬기'에 가까우며, 복잡하거나 중복된 코드를 개선하거나 주석을 덧붙이는 작업입니다. 따라서 개발 중에 리팩토링을 하는 건, 사실상 아무런 진전이 되지 못합니다. 다만 추후에 유지보수할 때에는 큰 도움이 될 수 있겠죠. 물론 처음부터 코드를 잘 짜는 게 좋겠지만, 그게 안된다면 틈날 때마다 코드를 다듬어주는 게 좋습니다. 2. 소프트웨어 역공학 (Reverse Engineering..

[SW공학] 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 [내부링크]

소프트웨어 공학에서는 유닛테스트, 통합 테스트, 시스템 테스트, 인수 테스트를 거쳐 개발을 완료하게 됩니다. 해당 테스트 과정을 자세히 알아보겠습니다. [ Contents ] 1. 단위 테스트 (Unit Testing) (설계상) 최소 단위인 '모듈(Module)'의 동작 검증 '유닛 테스트' 라고도 불립니다. 주로 모듈 개발 후, 제대로 동작하는지 화이트박스 기법으로 테스트합니다. 2023.04.28 - [CS] - [SW공학] 화이트박스 테스트, 블랙박스 테스트의 개념과 종류 [SW공학] 화이트박스 테스트, 블랙박스 테스트의 개념과 종류 소프트웨어 공학의 테스트 기법에는 크게 화이트박스 테스트와 블랙박스 테스트가 있습니다. 해당 테스트 기법의 개념과 종류에 대해서 알아보겠습니다. [ Contents ..

[SW공학] 화이트박스 테스트, 블랙박스 테스트의 개념과 종류 [내부링크]

소프트웨어 공학의 테스트 기법에는 크게 화이트박스 테스트와 블랙박스 테스트가 있습니다. 해당 테스트 기법의 개념과 종류에 대해서 알아보겠습니다. [ Contents ] 1. 화이트박스 (White Box) 테스트 소스코드를 통해 소프트웨어 내부 구조나 동작을 세밀하게 검사하는 기법 '화이트박스'는 속이 훤히 보이는 투명상자를 뜻합니다. 소스코드를 직접 뜯어보면서 테스트하는 기법으로, 프로그램 내부 구조나 동작을 꼼꼼히 검사할 수 있습니다. 테스트 종류에는 '제어흐름(조건문, 반복문)', '데이터 흐름(변수, 자료구조)', '분기', '경로' 테스트가 있습니다. - 테스트 검증기준 (커버리지, Coverage) 1) 문장 검증: 모든 문장이 한 번씩은 수행하는지 (안 쓰는 코드가 있는지) 2) 조건 검증:..

[SW공학] 디자인 패턴: 생성, 구조, 행위 패턴의 종류 [내부링크]

디자인 패턴은 개발자들이 객체지향 프로그래밍에서 자주 쓰는 코드 모음입니다. 이러한 종류에는 크게 생성 패턴, 구조 패턴, 행위패턴이 있습니다. 종류별로 어떤 디자인 패턴이 있는지 알아보겠습니다. [ Contents ] 1. 디자인 패턴 (Design Pattern) 객체 지향 프로그래밍에서 각 유형별로 가장 적합한 설계를 일반화하여 체계화한 패턴 객체 지향 프로그래밍에서 자주 발생한 문제들을 회피하고, 성능 및 개발 편의성을 높이기 위한 족보입니다. 베이스 코드라고 볼 수 있죠. 이미 수많은 개발자들이 수많은 프로그램을 개발했고, 그들의 프로그래밍에는 일련의 공통점이 있습니다. 자주 사용하는 솔루션이 생기기 시작했고, 그러한 것들이 모여 '디자인 패턴'이 되었습니다. 2. 생성 패턴 (객체 생성) - ..

[SW공학] UML 다이어그램의 종류: 유즈케이스, 클래스, 시퀸스, 상태, 액티비티, 복합 구조, 컴포넌트, 배치 [내부링크]

소프트웨어 공학에서는 UML 다이어그램으로 시각화하여 설계합니다. 그 예시로는 유즈케이스 다이어그램, 클래스 다이어그램, 순서 다이어그램, 상태 다이어그램, 액티비티 다이어그램, 복합 구조 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램이 있으며 이를 자세히 알아보겠습니다. [ Contents ] 1. 사용 사례 다이어그램 (Use case Diagram) 사용자의 관점에서 시스템의 기능과 관계를 나타낸 다이어그램 보통 '유즈케이스 다이어그램'이라고 부릅니다. 사용자의 요구를 추출하고 분석하는 데에 사용합니다. cf) 유즈케이스 다이어그램에서 화살표의 의미 : include: 필수적으로 필요한 기능, extend: 부가적으로 필요한 기능 2. 클래스 다이어그램 (Class Diagram) 소프트웨어 내..

[SW공학] 소프트웨어 아키텍처: MVC, 이벤트 기반, 파이프 필터 [내부링크]

소프트웨어 아키텍처는 전체 시스템 구조도로, 소프트웨어 성향에 따라 다양한 아키텍처 패턴을 사용합니다. 그중 많이 쓰이는 MVC 패턴, 이벤트 기반(Event-driven) 패턴, 파이프 필터 패턴을 알아보겠습니다. [ Contents ] 1. 소프트웨어 아키텍처 소프트웨어의 구성요소와 (외부) 특성, 그리고 구성 요소 간 관계를 표현한 시스템 구조도 소프트웨어 아키텍처는 구성요소(컴포넌트) 간 인터페이스와 인터랙션을 한눈에 보기에 좋습니다. 전체적인 시스템 구조를 표현하며, 사용자의 요구를 바탕으로 시스템을 설계하는 중요한 단계입니다. 위 예시는 클라이언트 서버(Client-Server) 아키텍처로, 사용자와 서버와의 인터페이스와 인터랙션을 중심으로 그려진 설계도입니다. 이외에도 MVC, 이벤트 기반,..

[SW공학] 모듈화(Modulariation): 결집도와 응집도의 종류와 강도 [내부링크]

소프트웨어는 모듈화되어 개발됩니다. 각 모듈 간 결집도는 낮을수록 좋고, 모듈 내 응집도는 높을수록 좋습니다. 이러한 이유를 살펴보고, 결집도와 응집도의 종류에 대해 알아보겠습니다. [ Contents ] 1. 모듈화 (Modulariation) 소프트웨어 설계에서 기능 단위로 분해하여 추상화한 단위를 '모듈(Module)'이라고 합니다. 소프트웨어는 각 기능 단위로 모듈화되어있으며, 각각의 독립성을 보장해야 합니다. 모듈의 독립성이 보장되어야 모듈의 디버깅 및 수정, 테스트, 통합이 용이합니다. 만약 하나의 모듈이 여러 모듈에게 영향을 끼친다면, 그 모듈들을 모두 수정해야하는 번거로움이 생깁니다. 따라서 모듈간의 결합도는 낮고, 모듈 내 응집력은 강해야 좋습니다. 2. 결합도 (Coupling) - 자..

[SW공학] CMMi: 기존 CMM을 통합한 조직 성숙도 평가모델 [내부링크]

조직 성숙도 평가 모델인 CMMi과 해당 모델의 성숙도 단계에 대해 알아보겠습니다. [ Contents ] 1. CMMi (Capability Maturity Model integration) 여러 개로 나누어져 있던 CMM을 통합한 조직 성숙도 평가 모델 SEI(Software Engineering Institute, 소프트웨어 공학 연구소)에서 만든 통합 평가모델입니다. 시스템 공학과 소프트웨어 공학의 기능적 통합에 중점을 두고, ISO 15504(SPICE) 표준과 호환성을 갖도록 통합했습니다. 2. 성숙도 단계 0단계 (not performed): 실행 안 됨 1단계 (performed): 실행됨 2단계 (managed): 문서화된 계획 3단계 (defined): 표준 프로세스, 소프트웨어 공학 ..

[SW공학] ISO/IEC 9126 품질 특성: 신뢰성, 사용성, 이식성, 기능성, 유지보수성, 효율성 [내부링크]

ISO/IEC에서 정의한 소프트웨어 품질 특성에 대해서 알아봅니다. [ Contents ] 1. ISO/IEC 9126 품질 특성 소프트웨어의 품질 특성과 평가요소를 정의한 국제 표준 ISO는 국제 표준화 기구이며, IEC는 국제 전기기술협회입니다. ISO/IEC 9126은 소프트웨어의 품질 특성을 정의한 표준으로, 현재는 폐기되었습니다. (ISO/IEC 25000 SQuaRE로 통합됨) 하지만 여전히 국내에서는 사용되고 있는 품질 평가기준입니다. 2. 품질 특성 요소 1) 신뢰성 (Reliability) 규정 조건에서 규정된 성능을 보장, 사용자 오류 방지 2) 사용성 (Usability) 사용자가 쉽게 이해하고 학습하여 사용 가능 3) 이식성 (Portability) 다양한 환경에서 사용 가능 4) ..

[SW공학] 일정계획: 작업분해(WBS), CPM/PERT, 간트 차트 [내부링크]

소프트웨어 공학에서 일정계획을 할 때 작업분해(WBS), CPM/PERT 네트워크 차트, 간트 차트를 사용합니다. 이에 대해서 알아보겠습니다. [ Contents ] 1. 일정계획 개발모형(SDLC) => 작업 분해(WBS) => CPM/PERT => 간트 차트(Gantt Chart) 2. 작업 분해 (WBS, Work Break-dwon Structure) 프로젝트에 필요한 활동과 업무를 세분화하는 작업 프로젝트의 모든 작업을 찾아내기 위해, 목표를 작은 단위로 세분화하는 작업입니다. 각 단위별 필요한 관리와 비용을 산정합니다. 3. CPM/PERT (Critical Path Method, Promgram Evaluation and Review Technique) 각 작업별 순서와 소요시간을 나타낸 프..

[SW공학] 비용 산정 방법: 델파이, LOC, COCOMO모델, 기능 점수 [내부링크]

소프트웨어 공학에서 비용을 산정하는 방법에는 델파이, LOC, COCOMO모델, 기능 점수가 있습니다. 이러한 방법의 특징과 산정방식에 대해서 알아보겠습니다. [ Contents ] 1. 델파이 (Delphi) 전문가 패널을 구성하여 고문을 받는 방식입니다. 각 패널들은 서로를 알지 못하는 익명성이 유지되어야 합니다. 조사자는 패널들의 의견을 취합하고, 다시 패널들에게 전달합니다. 패널들은 취합된 의견을 보며, 수정한 자신의 의견을 다시 전달합니다. 이런 식으로 반복하여 비용을 산정하는 방식입니다. 소프트웨어 공학 외에도 행정학, 정책학 등 다양한 분야에서 사용됩니다. '델파이'라는 명칭은 델포이(delphoe) 신전에서 나왔으며, 마치 신전의 신탁을 연상케 하는 방식입니다. 2. LOC (Lines O..

[SW공학] 익스트림 프로그래밍(XP, eXtreme Programming) - 애자일(Agile) 기법 [내부링크]

애자일 기법으로 유명한 익스트림 프로그래밍 개발기법에 대해서 알아보겠습니다. [ Contents ] 1. 익스트림 프로그래밍(XP, eXtreme Programming) 고객의 참여를 극한(extreme)까지 유도하는 소프트웨어 개발기법 흔히 '에자일(Agile)'기법이라고 불리며, 사용자의 요구변화에도 유연하고 신속하게 대응할 수 있는 개발방식입니다. 작은 작업단위로 진행하며, 수시로 프로토타입을 만들어 고객에게 피드백을 받습니다. 이러한 개선을 반복하며 점진적으로 개발을 완성해갑니다. 나선형 모델과 유사한 점이 많으나, 차이점은 '고객의 참여 극대'와 '개발 경량화 및 편의'입니다. 개발자들은 문서화 작업에 익숙하지 않으며, 형식적인 문서작업보다는 코드 한 줄을 더 쓰려는 경향이 있습니다. 이러한 개..

[SW공학] V-모형의 개념과 프로세스 [내부링크]

V모형에 대해 알아보고, 그 프로세스를 살펴봅니다. [ Contents ] 1. V-모형 개발과 검증 작업 사이의 관계를 명백히 드러낸 폭포수 모델의 확장 형태 폭포수 모델에서의 분석과 설계 단계는 왼편에, 테스트와 검증은 오른편에 두어 명확히 관계를 표시한 모델입니다. 모든 단계에서 테스트와 검증이 있어 오류를 줄일 수 있으므로 신뢰성이 필요한 분야에 적합한 개발 방식입니다. 2023.04.26 - [CS] - [SW공학] 폭포수 모델(Waterfall)의 개념과 장단점 [SW공학] 폭포수 모델(Waterfall)의 개념과 장단점 폭포수 모델은 [요구사항 정의 - 시스템 & 소프트웨어 설계 - 구현 및 단위테스트 - 통합 및 시스템 테스트 - 운용 & 유지보수]의 과정을 거쳐서 개발하는 프로세스입니다...

[SW공학] 나선형 모델(Spiral Model)의 특징과 프로세스 [내부링크]

워터폴 방식과 프로토타이핑 방식의 장점을 취한 나선형 모델에 대해서 알아보겠습니다. [ Contents ] 1. 나선형 모델 (Spiral Model) 위험을 최소화하며 점진적으로 완성해가는 개발 프로세스 나선형 모델은 '폭포수 모델(waterfall)'의 체계적인 단계와 '프로토타이핑 모델(Prototyping)'의 반복 개선 특성을 수용한 모델입니다. 기존 폭포수 모델은 초기 설계가 잘못 되었을 경우, 되돌릴 수 없다는 한계와 위험성을 갖고 있었습니다. 또한 개발이 다 되고나서야 제품을 테스트할 수 있다는 맹점도 있었습니다. 하지만 나선형 모델은 프로토타이핑 모델의 특성을 받아들여, 계속 테스트하면서 점진적으로 개발해갑니다. 이를 통해 잠재적 위험성을 최소하며 대규모 시스템을 개발할 수 있습니다. (..

[SW공학] 프로토타이핑(프로토타입) 모델의 개념과 프로세스 [내부링크]

프로토타이핑 모델의 개념과 프로세스에 대해서 알아보겠습니다. [ Contents ] 1. 프로토타이핑(Prototyping) 모델 사용자 요구분석을 위해, 견본품(Prototype)을 만들어 의사소통 도구로 사용하는 방식 프로토타입은 '시제품'으로, 사용자에게 어떻게 만들어질지를 보여주는 샘플입니다. 따라서 성능, 품질 따지지 않고 단순히 동작만 하도록 구현합니다. 사실 상황에 따라서는 프로그램 코드로 구현하지 않고, 스케치북이나 PPT 등을 활용해서 만들 수도 있습니다. 프로토타입의 목적은 사용자의 요구를 파악하고 분석하는 데에 있으므로, 빠르고 값싸게 만들어서 피드백을 얻고 폐기합니다. 프로토타입을 보완해서 실제 제품을 만드는 경우도 있으나, 소프트웨어 공학에서는 지양하고 있습니다. 2. 프로토타이핑..

[SW공학] 폭포수 모델(Waterfall)의 개념과 장단점 [내부링크]

폭포수 모델은 [요구사항 정의 - 시스템 & 소프트웨어 설계 - 구현 및 단위테스트 - 통합 및 시스템 테스트 - 운용 & 유지보수]의 과정을 거쳐서 개발하는 프로세스입니다. 이러한 폭포수 모델의 특성과 장단점을 살펴보겠습니다. [ Contents ] 1. 폭포수(Waterfall) 모델 폭포처럼 각 단계가 순차적으로 진행되는 정형화된 모델 물이 거슬러 올라갈 수 없듯이, 폭포수 모델도 한 번 지나친 단계는 다시 돌아가지 못하는 모델로 유명합니다. 하지만 요즘에는 문제가 있을 시, 이전 단계로 되돌아가기도 합니다. 다만 에자일과 같은 방식처럼, 이전 단계로 돌아가는 걸 상정하진 않습니다. 단계별로 시간을 들여 확실하게 하는 대신, 다시 되돌아가는 비용을 줄이는 모델이죠. 여기에서 확실하게 진행한다는 건,..

[SW공학] 소프트웨어 생명주기(SDLC): 계획, 분석, 설계, 구현, 시험, 유지보수 [내부링크]

소프트웨어는 [계획 - 분석 - 설계 - 구현 - 시험 - 유지보수] 단계를 거쳐서 탄생하고 폐기됩니다. 이 과정에 대해서 알아보겠습니다. [ Contents ] 1. 소프트웨어 생명주기(Software Devlopment Life Cycle) 소프트웨어가 만들어져서 폐기되기까지의 단계를 말합니다. 유지보수를 얼마나 하느냐에 따라 생명주기는 크게 달라지나 보통 5~8년 정도 사용하게 됩니다. 소프트웨어는 비마모성이라, 많이 사용한다고 훼손되거나 닳지 않습니다. 하지만 품질이 점점 나빠지게 됩니다. 유지보수로는 한계가 있죠. IT업계는 빠르게 발전하고 있고, 최신 기술의 효용성은 상당히 높습니다. 결국 기존 데이터는 그대로 끌고 가더라도, 시스템은 새로 개발하게 됩니다. 2. 소프트웨어 생명주기 단계 계획..

[SW공학] 소프트웨어(Software)의 개념과 특징 [내부링크]

소프트웨어의 개념과 특징에 대해서 알아봅니다. [ Contents ] 1. 소프트웨어의 개념 소프트웨어는 프로그램 뿐만 아니라, 개발과 운용 및 유지보수에 관련된 모든 문서와 정보를 포함한다. 소프트웨어는 단순히 프로그램을 의미하지 않습니다. 기획, 개발 및 테스트 문서를 비롯해서 사용자 가이드까지 포함합니다. 소프트웨어 공학에서는 프로그램 구현(개발) 외적으로, 체계적으로 기획하고 문서화하는 작업을 주로 다루게 됩니다. 2. 소프트웨어의 특징 1) 유형성 소프트웨어도 '형태'가 있는 '유형'의 물질입니다. 소프트웨어는 프로그램 코드로 이루어져 있고, 이를 분석/설계의 산출물로 가시화할 수 있습니다. 2) 동적행위성 프로그램은 정적인 반면, 소프트웨어는 동적입니다. 하드웨어에 의해 실행된 프로그램이 '사..

[DB] 데이터 웨어하우스와 데이터 마트, 그리고 ETL이란? [내부링크]

데이터 웨어하우스는 기업에서 사용하는 업무용 데이터 창고입니다. 그리고 각 업무 담당자는 데이터 마트에서 자료를 찾아서 사용합니다. 이러한 작업이 가능한 이유는 ETL 덕분입니다. 이에 대해서 자세히 알아보겠습니다. [ Contents ] 1. 데이터 웨어하우스 (Data Warehouse) 보다 정보에 입각한 의사결정을 내릴 수 있도록, 다양한 소스의 대량 데이터를 연결하고 통합한 데이터베이스 데이터 웨어하우스는 말 그대로 '창고'입니다. DB의 데이터를 수집해서 모아두는 창고 역할을 합니다. 그리고 업무별, 목적별로 나누어서 데이터 마트로 보냅니다. 업무 담당자는 자신의 업무와 관련있는 정보만 쉽게 찾을 수 있죠. 2. 데이터 웨어하우스의 특징 - 주제별, 분야별로 정리된 데이터 - 통합된 데이터 -..

[ORACLE] 기존 튜플을 변형해서 테이블에 삽입하는 방법 (여러 건의 튜플 삽입) [내부링크]

INSERT INTO SELECT 문을 이용해서 여러 건을 삽입하는 방법을 알아봅니다. [ Contents ] 1. 여러 건 삽입 (INSERT INTO SELECT) INSERT INTO EMP_BOSS SELECT * FROM EMP WHERE RANK = 'BOSS' 일반적으로 INSERT문은 한 개씩 삽입됩니다. 하지만 이는 너무 지겨운 작업이죠. SELECT문을 이용하면 특정 조건의 튜플을 한 번에 넣을 수 있습니다. 다만 칼럼명과 속성값, 순서 등 테이블 구조가 완전히 같아야 가능합니다. 2. 변형해서 여러 건 삽입 (응용) INSERT INTO EMP_INFO( SHYR , SALARY , DPMT , PSD ) SELECT '2023' , SALARY , DPMT , PSD FROM EMP..

[DB] 데이터베이스 병행(동시성) 제어 기법: 로킹, 기본적 2PL [내부링크]

데이터베이스 병행 작업 시 문제점을 해결하기 위한 로킹과 기본적 2PL에 대해서 알아보겠습니다. [ Contents ] 1. 병행작업의 문제점 운영체제에서 같은 자원을 쓰는 프로세스를 병렬 처리할 때 교착상태(Deadlock)에 빠지듯이, DB에서도 같은 데이터를 동시에 여러 트랜잭션이 처리할 때 문제가 생깁니다. 이를 해결하기 위해서 병행 제어 기법을 사용합니다. 2023.04.25 - [Data Engineering] - [DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 [DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 데이터베이스는 여러 트랜잭션을 번갈아가며 함께 처리합니다. 그러다 보니 서로 얽히는 경우도 생기는데, 이러한 병행수행의 문제점에 대해서 알아보겠습니다. [ Contents ..

[DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 [내부링크]

데이터베이스는 여러 트랜잭션을 번갈아가며 함께 처리합니다. 그러다 보니 서로 얽히는 경우도 생기는데, 이러한 병행수행의 문제점에 대해서 알아보겠습니다. [ Contents ] 1. 동시성 제어 (병행 제어) 동시 실행되는 여러 트랜잭션의 작업에서 문제가 발생하지 않도록 제어하는 기법 트랜잭션은 동시에 실행될 수 있으나, 결과는 독립적으로 연속되어 실행된 결과와 같아야 합니다. (트랜잭션의 고립성/격리성) 흔히 수강신청이나 선착순 예약을 떠올리시면 이해하기 쉽습니다. 동시에 여러 트랜잭션이 수행되지만, 실행순서대로 직렬성이 보장되어야 합니다. 그리고 응답시간을 최소화하면서 데이터의 무결성과 일관성을 보장하는 기법이 '동시성 제어(병행 제어)'라고 보면 되겠습니다. 2. 병행 수행의 문제점 운영체제와 마찬가..

[DB] 데이터베이스 로그 회복 기법 (즉시 갱신, 지연 갱신) [내부링크]

데이터베이스 장애 발생 시, 덤프와 로그를 통해 회복하는 기법에 대해 알아보겠습니다. 로그 회복기법에는 '즉시 갱신'과 '지연 갱신'이 있으며 이에 대해 살펴봅니다. [ Contents ] 1. 데이터베이스 회복 작업 데이터베이스에서 장애 발생 시, 완료된 트랜잭션은 다시 실행(Redo)하고 중단된 트랜잭션은 실행 이전으로 돌아가는 작업(Undo)을 '회복'이라고 합니다. 이러한 회복 작업은 DB 갱신 방식에 따라 달라질 수 있습니다. DB 갱신 방식에는 '즉시 갱신'과 '지연 갱신'이 있으며 이는 아래에서 다뤄보겠습니다. 2023.04.25 - [Data Engineering] - [DB] 장애와 회복 기법 (Redo 재실행, Undo 취소) [DB] 데이터베이스 장애와 회복 기법 (Redo 재실행, ..

[DB] 데이터베이스 장애와 회복 기법 (Redo 재실행, Undo 취소) [내부링크]

데이터베이스에서 일어날 수 있는 장애의 유형에 대해 알아보고, 이를 복구하기 위한 회복기법을 알아보겠습니다. 회복기법에는 Redo(재실행)와 Undo(취소)가 있으며, 덤프(복사본)와 로그를 통해 복구합니다. [ Contents ] 1. 장애 - 실행 장애: 데이터베이스 연산 실패 - 트랜잭션 장애: 프로그램 실행 중지 - 시스템 장애: 하드웨어 결함 - 미디어 장애: 디스크 장치 결함 장애는 트랜잭션을 더 이상 수행할 수 없는 시스템 중단 상태를 말합니다. 장애의 유형에는 '실행 장애', '트랜잭션 장애', '시스템 장애', '미디어 장애'가 있습니다. 일종의 DB오류라고 생각하시면 됩니다. 여기서 중요한 건, 장애가 아니라 이를 대처하는 회복(복구) 조치입니다. 2. 회복 - 덤프(Dump): 주기적..

[DB] 트랜잭션의 특성(ACID, 원자성/일관성/고립성/영속성)과 상태 [내부링크]

트랜잭션의 특성에는 '원자성', '일관성', '고립성(독립성)', '영속성'이 있습니다. 이러한 특성과 트랜잭션의 상태 변화까지 알아보겠습니다. [ Contents ] 1. 트랜잭션 (Transaction) DB 상태를 변화시키는 일련의 작업 단위 부분적으로 실행되서는 안되는 '일련의 작업 단위'를 트랜잭션이라고 합니다. 예를 들어 계좌이체에서 오류가 발생해서 돈만 빠져나가고 상대방에게는 입금이 안되었다면 큰일이겠죠. 그래서 트랜잭션은 병행제어 및 회복 작업의 논리적 단위로서 자주 언급됩니다. 2. 트랜잭션의 특성 (ACID) 1) 원자성 (Atomicity) 트랜잭션 실행은 모두 완료되거나, 실패 시 실행 이전으로 돌아가야 함 앞서 말했듯이, 트랜잭션은 부분 성공해서는 안 됩니다. 모두 완료하거나 실행..

[DB] 데이터베이스 정규화 (제 1, 2, 3, 보이스/코드, 4, 5 정규형) [내부링크]

이상현상을 방지하기 위해, 테이블을 잘게 쪼개는 정규화라는 작업을 합니다. 정규화에는 1~5단계가 있으며, 이에 대해 알아보도록 하겠습니다. [ Contents ] 1. 정규화 (Normalization) 이상현상(Anomaly)을 없애기 위해, 테이블을 잘게 쪼개는 과정 앞서 이상현상을 살펴보았습니다. 이상현상은 삽입, 갱신, 삭제 시 원치 않는 결과를 초래하는 경우를 뜻합니다. PK값이 없어서 삽입할 수 없다던가, 갱신으로 인해 상이한 데이터가 생긴다던가 하는 문제가 있었죠. 2023.04.24 - [Data Engineering] - [DB] 데이터베이스 이상현상(삽입, 삭제, 갱신)과 함수종속성 개념과 예시 [DB] 데이터베이스 이상현상(삽입, 삭제, 갱신)과 함수종속성 개념과 예시 데이터베이스 ..

[DB] 데이터베이스 이상현상(삽입, 삭제, 갱신)과 함수종속성 개념과 예시 [내부링크]

데이터베이스 이상현상에 대해서 알아보고, 이와 관련된 함수 종속성의 개념과 예시도 살펴보겠습니다. [ Contents ] 1. 이상현상 - 삽입 이상(Insertion Anomaly): 튜플 삽입 시, 원하지 않는 정보(NULL 등)를 강제 삽입해야 하는 경우 - 삭제 이상(Deletion Anomaly): 튜플 삭제 시, 같이 저장된 다른 정보까지 삭제되는 경우 - 갱신 이상(Update Anomaly): 튜플 갱신 시, 중복된 데이터의 일부만 갱신되어 데이터 불일치가 일어나는 경우 이상현상은 삽입, 삭제, 갱신 작업에서 생기는 오류가 아닙니다. 각 작업은 제대로 진행되나, 의도치 않은 데이터 손실이나 누락 문제가 생길 때 '이상 현상'이라고 합니다. 학번 (PK) 성명 학과 등록금 장학 2310132..

[DB] 가상 테이블, 뷰(VIEW)의 특성과 장단점 [내부링크]

주로 조회 용도로 만들어둔 가상 테이블을 뷰(VIEW)라고 합니다. 이러한 뷰의 특성, 장단점을 살펴보겠습니다. [ Contents ] 1. 뷰(VIEW) 자주 조회하는 SELECT문을 저장해 둔 가상 테이블 관계형 데이터베이스에서 테이블은 정규화되어 나뉘어 있습니다. 흩어진 모든 정보를 모아둔... 일명 Master(마스터) 테이블이 없다면, 매번 join을 통해서 여러 테이블을 모아 조회해야 합니다. 예를 들어, 학생의 신상정보를 보려면 여러 테이블(신체, 학적, 성적, 등록, 봉사활동, 자격증, 어학 등등)을 학번으로 조인을 걸어서 통합해야 합니다. 이는 굉장히 귀찮고 손이 많이 가는 일이죠. CREATE VIEW 신상정보(학번, 신체, 학적, 성적, 등록, 봉사활동, 자격증, 어학) AS SELE..

[DB] 테이블 키의 5가지 종류와 무결성 제약 3가지 종류 [내부링크]

DB 테이블 키에는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있습니다. 그리고 무결성 제약에는 개체 무결성, 참조 무결성, 도메인 무결성이 있습니다. 이들에 대해 자세히 알아보겠습니다. [ Contents ] 1. 테이블 키의 종류 - 후보키(Candidate Key): 최소 조합으로 만든 유일한 키 - 기본키(Primary Key): 선정된 후보키 - 대체키(Alternate Key): 후보키 중 기본키를 제외한 나머지 키 - 슈퍼키(Super Key): 최소 조합이지만 유일하지는 않은 키 - 외래키(Foreign Key): 다른 테이블에서 해당 테이블을 참조할 때 쓰는 기본키 테이블 키에는 위와 같이 5가지 종류가 있습니다. 후보키, 기본키, 대체키, 슈퍼키, 외래키입니다. 테이블 키는 특정 속성..

[DB] 데이터베이스 설계 프로세스와 종류 (개념적 설계, 논리적 설계, 물리적 설계) [내부링크]

데이터베이스를 설계하는 프로세스와 그 과정에 대해서 알아봅니다. [ Contents ] 1. 데이터베이스 설계 단계 요구 조건 및 분석 => 개념적 설계 => 논리적 설계 => 물리적 설계 => 구현 먼저 데이터 및 처리 요구 조건을 파악한 다음, 개념-논리-물리 설계를 거쳐 구현합니다. 각 설계과정은 아래에서 자세히 알아보겠습니다. 2. 개념적 설계 개념적 설계는 DBMS와 무관하게 독립적으로 설계합니다. 이 단계에는 개념적 스키마(데이터 중심)와 트랜잭션(처리 중심) 모델링이 있습니다. 3. 논리적 설계 반면 논리적 설계에서는 사용하는 DBMS에 맞게 종속적으로 설계합니다. 이 단계에서는 논리적 스키마와 트랜잭션 인터페이스를 설계합니다. 3. 물리적 설계 물리적 설계에서는 사용하는 DBMS에 맞는 물..

[DB] 데이터 사전(Data Dictionary)과 데이터 디렉토리(Data Directory) [내부링크]

데이터베이스를 정의하는 데이터 사전과, 데이터 사전에 수록된 데이터를 실제로 접근하는 정보를 관리하는 데이터 디렉토리에 대해서 알아보겠습니다. [ Contents ] 1. 데이터 사전 (Data Dictionary) 데이터 사전은 데이터베이스에 포함되는 모든 데이터 객체들의 정의나 명세를 관리합니다. 테이블로 되어있어 쿼리문으로 조회도 가능하지만, 갱신은 데이터 정의어(DDL)로 해야 합니다. (대체로 읽기전용) SELECT table_name, tablespace_name FROM ALL_TABLES; 데이터 사전에는 스키마 객체(Table, View, Index 등)와 함수, 프로시저, 트리거, 패키지뿐만 아니라 사용자 정보와 권한, 역할까지 전반적인 데이터베이스 정보가 다 들어있습니다. SELECT..

[DB] 데이터 언어의 종류 (데이터 정의어, 데이터 조작어, 데이터 제어어) [내부링크]

데이터베이스에서 사용하는 언어, SQL에는 3가지 종류가 있습니다. 데이터 구조를 정의하는 데이터 정의어(DDL), 데이터를 삽입/삭제/갱신/조회하는 데이터 조작어(DML), 데이터를 제어하는 데이터 제어어(DCL)입니다. 이에 대해서 알아보겠습니다. [ Contents ] 1. 데이터 정의어 (DDL, Data Definition Language) 데이터 구조를 생성하거나 변경, 삭제하는 데에 사용합니다. 흔히 데이터베이스 관리자(DBA)가 사용하며, DB의 스키마를 정의합니다. 이는 메타 데이터 형태로 데이터 사전(Data Dictionary)에 저장됩니다. SQL문에서는 CREATE, DROP, ALTER, TRUNCATE와 같은 명령어가 있으며, 테이블이나 뷰 등을 정의할 때 사용합니다. DML과..

[DB] 데이터베이스 스키마 개념과 종류 (외부, 개념, 내부) [내부링크]

데이터베이스 시스템을 이루는 3가지 스키마에 대해서 알아보고, 이를 구분하는 인터페이스를 살펴봅니다. [ Contents ] 1. 데이터베이스 시스템 데이터베이스 시스템은 위와 같이 작동합니다. 사용자나 응용프로그램에 맞게 외부 스키마를 나누어 놓으며, 외부 스키마가 모여 하나의 개념 스키마를 이룹니다. 2. 스키마 (Schema) - 전반적인 DB의 논리적 설계를 의미하며, 관계형 DB에서 데이터가 구조화되는 방식을 정의 - 데이터 객체, 성질, 관계, 제약조건에 관한 정의 위 그림과 같이, 스키마는 대체로 데이터베이스 아키텍처를 그릴 때 들어갑니다. 그리고 스키마 설계 프로세스를 데이터 모델링이라고도 합니다. 이렇게 모델링된 스키마는 컴파일되어 데이터 사전에 저장됩니다. 3. 스키마 종류 1) 외부 ..

[C] scanf 로 공백 포함 입력받기, scanf_s 보안경고 해결하기 [내부링크]

C언어에서는 scanf 함수로 사용자로부터 값을 입력받습니다. 이 함수의 사용법 및 예시를 알아봅니다. [ Contents ] 1. scanf scanf(출력형식, &변수); scanf는 사용자로부터 값을 입력받는 함수입니다. 출력형식으로 어떻게 값을 입력을 받을지 설정하고, 변수에 값을 대입합니다. 여기서 &변수임을 주의해야 합니다. 변수명이 아니라, 변수의 주소가 들어갑니다. (&는 변수의 주소를 반환하는 주소연산자) int i; scanf("%d", &i); 위 코드는 정수형 변수 i에 사용자 값을 입력받는 코드입니다. int i; char str[10]; scanf("%d %s", &i, str); printf("%d %s", i, str); 위와 같이 한 번에 여러 개의 데이터를 입력받을 수도 ..

[C] printf 함수로 출력형식 지정하기 (출력 자릿수 고정, 소수 반올림) [내부링크]

printf 함수는 특정 데이터의 출력형식을 바꿔서 출력할 수 있습니다. 그 방법을 알아봅니다. [ Contents ] 1. 출력형식 출력형식 출력 데이터 출력 예시 %d 10진수 정수형 10 %o 8진수 정수형 12 (8진수로 10) %x 16진수 정수형 a (16진수로 10) %u 부호없는 10진수 정수형 10 %c 한 문자 a %s 문자열 hello %f 소수 형태의 실수형 0.100000 %e 지수 형태로 실수형 1.000000e-1 %g 소수와 지수 형태 중 짧은 걸로 출력 0.1 출력형식에 따라 진법변환도 가능하며, 데이터 타입을 정해줄 수 있습니다. 출력형식은 특히 변수와 더불어서 많이 사용합니다. C언어는 다른 언어처럼 +연산자로 텍스트와 변수를 병합하거나, f-string 같은 게 없습니..

[IP-R&D] 특허 침해 판단 기준: 문언해석의 원칙, 균등론의 원칙 [내부링크]

특허 침해 판단 기준이 되는 '문언해석의 원칙'과 '균등론의 원칙'에 대해 알아보겠습니다. [ Contents ] 1. 핵심특허 핵심특허: 하고자 하는 아이디어, 기술과 가장 비슷한 특허 핵심특허는 다양하게 해석될 수 있으나, 등록하려는 특허와 가장 유사한 특허를 말합니다. 자세히는 청구항의 구성요소와 모두 일치하는 특허입니다. 따라서 핵심특허가 있을 경우, 등록조차 거절당하며 운 좋게 되더라도 특허소송으로 막대한 배상금을 물을 수도 있습니다. 2023.04.18 - [Etc . . .] - [IP-R&D] 특허 침해 성립 조건, 특허 침해 피해 및 보상, 대처방법 [IP-R&D] 특허 침해 성립 조건, 특허 침해 피해 및 보상, 대처방법 특허 침해요건에 대해 알아보고, 특허 침해 시 피해와 보상, 대처..

[IP-R&D] 특허 침해 성립 조건, 특허 침해 피해 및 보상, 대처방법 [내부링크]

특허 침해요건에 대해 알아보고, 특허 침해 시 피해와 보상, 대처방법에 대해서 알아봅니다. [ Contents ] 1. 핵심특허 침해 시 피해 특허가 등록되었다고 해도, 타 특허와 분쟁이 생겨서 패소하면 막대한 피해를 입을 수 있습니다. 제품/서비스 생산 금지는 물론이고, 손해배상과 침해죄까지 물게 됩니다. 다만, 개발과정까지는 특허 침해가 아닙니다. 이를 제품/서비스로 생산하여 영리 활동을 시작하면 침해가 성립합니다. 그래서 2~3년 정도 일부로 방치한 뒤, 특허 소송을 걸어서 막대한 손해배상금을 뜯어내는 전문 기업도 있습니다. 흔히 '특허 괴물'이라고 불리는 글로버 특허관리전문회사(NPE, non-practicing entity)입니다. 이 회사는 특허로 별다른 상업활동없이, 오로지 특허소송 배당금으..

[IP-R&D] IP-R&D 프로세스(CT, OS, FIT)와 시장분석모형, 환경분석 [내부링크]

IP-R&D 프로세스와 시장분석모형, 환경분석에 대해 알아봅니다. [ Contents ] 1. IP-R&D란? IP-R&D는 핵심 경쟁사, 핵심 원천기술을 가진 특허를 조사하고, 그 기술에서 더 나아간 신기술(개량기술, 회피기술)을 개발하는 것 IP-R&D(Intellectual Property - Research & Development)는 '지식재산 연구개발'이라는 약어입니다. 여기서 지식재산(IP)은 주로 특허를 뜻하며, 기존 특허를 통해 향후 개발할 기술을 선정하는 작업을 말합니다. 여기서 중요한 점은 현재 유망한 기술분야가 아닌, 향후 3~10년 뒤에 유망할 기술 분야를 찾아야 합니다. 연구를 통해 기술을 개발하는 것도 오래 걸리며, 기술을 제품에 적용하는 것도 상당한 기간이 소요됩니다. 따라서..

[구현/수학] 백준 27961 고양이는 많을수록 좋다 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27961번: 고양이는 많을수록 좋다 올바른 행동 순서가 될 수 있는 하나의 예시는 아래와 같으며, $4$번보다 더 작은 행동 횟수로 $6$마리의 고양이를 마도카의 집에 들이는 것은 불가능하다. 초기 상태($0$마리) $\rightarrow$ 생성 www.acmicpc.net 2. 문제 풀이 생성마법: +1 복제마법: 1 ~ 2배 마법을 최소로 사용해서 고양이를 N마리로 만들어야 합니다. 보통 이런 문제는 DP를 사용하지만, 이 문제는 당연히 복제마법의 효율이 좋습니다. 사실상 생성마법 ∈ 복제마법인 셈이죠. 맨 처음에만 생성마법으로 +1을 시키고, 그 다음에는 복제마법만 쓰면 됩니다. 3. 코드 import sys import math input = sy..

[구현/수학] 백준 27960 사격 내기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27960번: 사격 내기 A, B, C는 올해에도 예비군 훈련을 받으러 간다. 이번 예비군 훈련 과정 중에는 영점 사격이 있으며, 10개의 과녁 각각에 점수를 매겨 맞춘 과녁 점수의 총합을 측정한다. 과녁을 맞혔을 때, 과녁별 www.acmicpc.net 2. 문제 풀이 A와 B의 사격점수가 주어집니다. 과녁은 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 배점이며, 각 과녁마다 1번씩만 쏴서 맞추면 해당 점수를 획득합니다. C는 A와 B 중 한 명만 맞힌 과녁은 맞췄으나, 둘 다 맞히거나 못 맞힌 과녁은 안 맞혔다고 합니다. C의 과녁점수를 구해야 합니다. True True False True False True Fa..

[구현/수학] 백준 27959 초코바 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27959번: 초코바 밤고는 $100$원 동전을 $N$개 갖고 있고, 그 돈으로 가격이 $M$원인 초코바를 사 먹으려고 한다. 밤고는 갖고 있는 돈으로 초코바를 사 먹을 수 있는지 알고 싶어 한다. 밤고가 가진 돈이 초코바의 www.acmicpc.net 2. 문제 풀이 100원짜리 동전 N개와 초코바의 가격 M이 주어집니다. 주어진 동전으로 초코바를 살 수 있을지 판별합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) # 출력 if N*100 >= M: print("Yes") else: print("No")

[구현/수학] 백준 27939 가지 교배 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27939번: 가지 교배 키위별의 유전학에 따르면 가지의 교배는 두 가지 서로 다른 방식이 가능하다. 교배란 서로 다른 두 품종으로부터 이전에 존재한 적 없는 하나의 품종을 만들어내는 것이다. P-우선 교배: 흰색과 www.acmicpc.net 2. 문제 풀이 P-우선 교배: 흰색과 흰색을 교배하면 흰색이 되고, 그 외의 경우는 보라색이다. W-우선 교배: 보라색과 보라색을 교배하면 보라색이 되고, 그 외의 경우는 흰색이다. 입력으로 n개의 가지 품종의 색깔이 주어집니다. 조수가 P-우선교배를 통해 품종을 먼저 개량하고, 개량된 품종을 교수가 W-우선 교배로 품종을 개량합니다. 이때 교수가 교배를 끝마친 후 흰색 가지를 얻을 수 있는지를 구해야 합니다. W..

[IP-R&D] BGT(Big Guy Tracking), 트리즈(TRIZ) 40가지 발명기법 [내부링크]

특허분석 및 연구개발 방향 수립을 위한 BGT기법과 트리즈 40가지 발명기법에 대해 알아봅니다. [ Contents ] 1. BGT(Big Guy Tracking) 기법 특정기술 분야를 선도하는 연구자(대가)들의 최근 연구활동을 집중 분석해서, 기술개발 방향 및 유망기술들을 도출하는 방법입니다. R&D 방향을 수립할 때에 중요하게 다뤄지는 지표로, 최신 연구의 트랜드를 알 수 있습니다. 현대의 기술시장은 사실상 독과점 형태이며, 극소수의 연구소와 기업에 의해 핵심기술이 개발되고 있습니다. 이러한 주요 출원인의 관심 기술분야는 앞으로의 연구방향을 기획하고. 유망기술들을 도출하는 데에 도움을 줍니다. 2. 트리즈(TRIZ) 40가지 발명기법 1. 분할 2. 추출 3. 국소적 성질 : 특정 부분만 다르게 하기..

[IP-R&D] 특허분석 및 R&D 방향 수립 (동종업계 특허분석) [내부링크]

선행기술조사와 특허동향분석의 차이를 알아보고, 연구개발 방향을 설정하는 법을 알아보겠습니다. [ Contents ] 1. 선행기술과 특허동향 분석의 차이 - 선행기술조사: 특허등록 가능성 판단 (신규성, 진보성 판단) - 특허동향분석: 연구개발 방향 설정, 신규기술 개발 선행기술조사와 특허동향분석은 둘 다 동일하게 특허분석을 하지만, 목적이 다릅니다. 선행기술조사는 출원하려는 특허와 비슷한 특허가 있는지, 해당 기술분야에서 진보성이 있는지를 판단하기 위한 조사입니다. 반면 특허동향분석은 앞으로의 연구개발 방향을 기획하고, 신규기술을 개발하기 위한 조사입니다. 2. 연구개발 방향 설정 정의 (1) 미래 시점에서 판매되는 기술 또는 제품의 (2) 경쟁력을 높이기 위한 (3) 개선방향 도출 특허 등록기간은 대..

[IP-R&D] 지식재산권 기반의 아이디어 창출 전략 (POWER, OS매트리스, 체계적 사고도구) [내부링크]

IP-R&D는 기존 특허를 분석해서, 새로운 IP를 창출하는 데에 의의가 있습니다. 신규 IP 아이디어 창출을 위한 전략을 알아봅니다. [ Contents ] 1. POWER 기법 - Positives (긍정적 요인) - Objectives (부정적 요인) - What else? (그 밖의 요인) - Enhancements (향상된 요인) - Remedis (수정 방안) 아이디어를 분석해서 이상적 결과(IFR)에 근접하는 브레인스토밍 기법입니다. 위 5가지 요인을 분석하며, POWER순서대로 요인을 고려할 필요는 없습니다. 사실 순서상 W가 제일 마지막에 고려해야할 요인입니다. 유용한 특성을 향상시키고 유해한 특성을 제거하여 최적의 아이디어를 도출합니다. 2. OS 매트릭스 OS매트릭스는 목적(Objec..

[IP-R&D] 특허동향분석의 세부 절차 (계획수립, 기술분류, 검색식, 유효특허 선별, 데이터 가공, 정량분석) [내부링크]

특허동향분석 과정의 세부 절차를 알아보겠습니다. [ Contents ] 1. 특허동향분석 프로세스 계획수립 > 기술분류체계 > 검색식 > 특허 모집단 > 유효특허선별 > 데이터 가공 > 정량분석 특허동향분석은 해당 특허범위 내 기술분야 트랜드를 알아보는 조사입니다. 위와 같은 과정으로 특허동향분석이 이루어지며, 아래에서 자세히 살펴보겠습니다. 2023.04.14 - [Etc . . .] - [IP-R&D] 특허동향분석, 그 목적과 과정 그리고 주요 지표 [IP-R&D] 특허동향분석, 그 목적과 과정 그리고 주요 지표 IP-R&D를 하기 위해서는 우선 해당 기술의 트랜드를 파악해야 합니다. 이를 위한 특허동향분석 방법을 알아봅니다. [ Contents ] 1. 특허동향분석 특허동향분석: 해당 기술분야의 동..

[IP-R&D] 특허동향분석, 그 목적과 과정 그리고 주요 지표 [내부링크]

IP-R&D를 하기 위해서는 우선 해당 기술의 트랜드를 파악해야 합니다. 이를 위한 특허동향분석 방법을 알아봅니다. [ Contents ] 1. 특허동향분석 특허동향분석: 해당 기술분야의 동향을 파악하기위해, 특허를 양적으로 검색하고 그래프를 그리는 작업 앞서 살펴본 선행기술조사는 '특허 등록 가능성'을 파악하기 위해, 유사특허를 찾아보는 조사였습니다. 특정 특허와 관련성이 있는지만 살펴보기 때문에, 비교적 지엽적으로 조사합니다. 반면 특허동향분석은 해당 기술분야의 트랜드를 파악하는 조사이므로, 넓고 다양하게 분석합니다. 해당 특허범위에 있는 특허문서를 전수조사해서 분류, 분석하는 일련의 작업을 거치게 됩니다. 그러니 상당히 많은 시간과 인력이 소요되며, 특허사무소에 맡길 경우 몇 천, 몇 억을 부르기도..

[IP-R&D] 특허 검색식 작성 방법 및 예시 (Kipris, 키프리스 특허검색엔진) [내부링크]

키프리스 특허정보검색서비스에서 검색식을 작성해서 검색하는 방법을 알아봅니다. [ Contents ] 1. 키프리스(Kipris) 키프리스(http://www.kipris.or.kr/)는 특허청에서 운용하는 특허검색엔진입니다. 무료로 국내외 특허를 검색하고, 특허문서를 다운로드도 할 수 있습니다. 주로 선행기술조사 목적으로 사용되며, 출원하려는 특허가 이미 출원/등록되어 있는지를 검색합니다. 이를 검색하기 위해서는 '검색식'을 작성해야 합니다. 네이버나 구글처럼 자연어로 검색할 수 없고, 키워드 중심의 산술식을 사용하여 검색합니다. 2. 검색식 부울대수 논리연산식과 비슷합니다. AND, OR, NOT 연산자만 잘 사용하면 쉽게 검색식을 작성할 수 있습니다. 입력 출력 TRUE TRUE TRUE TRUE F..

[IP-R&D] 선행기술조사의 종류와 특허검색엔진(Kipris 키프리스) [내부링크]

선행기술조사에 대해 알아보고, 특허검색을 할 수 있는 키프리스의 사용법에 대해 설명합니다. [ Contents ] 1. 선행기술조사의 종류 - 특허성 조사 : 신규성과 진보성 유무 파악 - 기술정보 조사 : 특정 기술분야에 대한 개괄 조사(R&D 초기단계) - 유효성 조사(무효 조사) : 타인의 권리주장에 대하여 해당 특허권을 무효화시킬 수 있는 선행기술자료를 조사하거나, 본인의 특허권이나 매입하려는 특허권이 유효한지를 파악 - 침해여부 조사(FTO 포함) - 특허맵 선행기술이란 '이미 있는 기술'을 뜻하며, 선행기술조사는 특허 등록 가능성을 파악하기 위한 조사입니다. 등록하려는 특허와 유사한 특허가 있는지, 혹시 해당 특허가 다른 특허를 침해하지는 않는지를 알아봅니다. 이를 위해 대부분의 시간을 관련 ..

[IP-R&D] 특허 등록요건 (발명성, 신규성, 진보성, 이용가능성) [내부링크]

특허 출원은 아무거나 할 수 있지만, 모두 등록되진 않습니다. 특허에 등록되기 위한 요건을 알아봅니다. [ Contents ] 1. 특허 요건 - 발명성: 자연법칙을 이용한 기술적 사상의 창작으로서 고도해야 함 - 신규성: 국내외에서 공지되었거나 공연히 실시, 기재되지 않은 새로운 발명이어야 함 - 진보성: 기술분야에서 통상 지식을 가진 사람이 쉽게 발명할 수 없는 정도의 창작 난이도를 갖춰야 함 - 산업상 이용가능성: 해당 산업에서 이용가능해야 함 특허는 '원천기술'이나 '핵심기술'로서, 기존에 없던 제품이나 기술을 새롭게 만들어낸 경우입니다. 특히 신규성과 진보성을 잘 갖추어야 합니다. 신규성은 국내외 특허에 없을 뿐더러, 공공연히 알려지지 않은 것을 뜻합니다. 이는 선행기술조사를 통해서 신규성을 검..

[IP-R&D] 지식재산권의 종류와 국내외 특허 특성 (국제특허와 속지주의) [내부링크]

특허는 지식재산권에 분류됩니다. 지식재산권의 종류와 국내, 국외 특허의 특성을 알아봅니다. [ Contents ] 1. 지식재산권이란? 지식재산권이란 '교육', '연구', '문화', '예술', '기술' 등 무형의 창조물에도 재산권을 부여하고 보호할 수 있는 권리입니다. 지식재산권은 크게 '산업 재산권'과 '저작권'으로 분류되며, 산업재산권에 우리가 익숙히 알고 있는 특허가 있습니다. 따라서 '지식재산권 = 특허'로 여기시면 안됩니다. 2. 산업재산권의 종류 정의 보호기간 특허 원천/핵심기술로서, 발명수준이 고도한 것 (대발명) 20년 실용신안 제품의 형상, 구조, 조합에 관한 실용성 있는 고안 (소발명) 10년 디자인 제품의 형상, 모양, 색채 등 외형 디자인 20년 상표 제품이나 서비스의 출처를 식별하..

[보안] 개인정보 생명주기별 조치방법: 수집 이용, 저장 관리, 제공 위탁, 파기 [내부링크]

개인정보보호법에 의거하여 개인정보 생명주기별 조치 방법에 대해 알아봅니다. [ Contents ] 1. 개인정보 생명주기 개인정보의 생명주기는 [수집 이용 - 저장·관리 - 제공·위탁 - 파기]로 이어집니다. 위 절차에 따라 해야하는 개인정보보호 조치사항에 대해 알아봅니다. 2. 수집 시 유의사항 1) 우선 어떤 개인정보를 어떻게 수집할지 결정해야 합니다. 개인정보는 필요 최소한의 범위에서 정당하고 적법하게 수집할 수 있습니다. 필요 최소한 정보인지에 대한 입증 책임은 개인정보처리자가 지게 됩니다. 2) 개인정보 수집이 허용되는 사유를 확인하여야 합니다. 개인정보 수집이 허용되는 구체적인 사유로는 정보주체의 동의, 법률 규정 및 법령상 의무 준수, 공공기관이 법령 등에서 정하는 소관 업무를 수행하기 위해..

[보안] 개인정보 유출 시 대응조치 (feat. 개인정보보호법) [내부링크]

개인정보가 유출되었을 시, 대응해야 하는 매뉴얼에 대해 살펴봅니다. (출처: 개인정보 포털) [ Contents ] 1. 개인정보 유출 사실 통지 - 유출을 안 때로부터 정당한 사유가 없는 한 늦어도 5일 이내에 정보주체에게 통지해야 합니다. - 유출된 개인정보의 확산 및 추가 유출을 방지하기 위해 접속경로 차단과 취약점 점검·보완, 그리고 유출된 개인정보 삭제 등 긴급한 조치가 필요한 경우에는 조치 후 5일 이내에 정보주체에게 통지할 수 있습니다. - 통지사항을 모두 확인하기 어려운 경우에는 통지항목 중 확인된 사실만 우선 알리고, 추후 확인되는 즉시 통지합니다. - 정보주체에 대한 통지사항은 유출된 개인정보의 항목, 유출된 시점과 그 경위, 유출로 인하여 발생할 수 있는 피해를 최소화하기 위하여 정보..

[보안] 개인정보 안전성 확보조치 (feat. 개인정보보호법) [내부링크]

개인정보보호법에 의거한 개인정보 안전성 확보조치에는 어떤 것이 있는지 알아봅니다. (출처: 개인정보 포털) [ Contents ] 1. 개인정보처리시스템에 대한 접근권한 관리 접근에 필요한 권한은 업무 수행에 필요한 최소한의 범위로 업무 담당자에 따라 차등 부여하고, 인사이동이 발생하여 개인정보취급자가 변경되었을 경우 지체 없이 권한을 변경 또는 말소합니다. 접근 권한 부여, 변경 또는 말소에 대한 내역을 최소 3년간 보관해야 하는데, 정보통신서비스제공자등은 최소 5년간 보관, 개인정보취급자 별로 사용자계정을 발급하고 다른 개인정보취급자와 공유해서는 안 됩니다. 특히 인턴이나 공익요원 등 임시직에게 업무자의 계정을 공유하는 경우를 가장 주의해야 합니다. 이는 별도 사용자 계정과 권한이임이 귀찮아서 일수도..

[보안] 개인정보보호 특별 보호 (개인영상정보, 민감정보, 고유식별정보, 주민등록번호, 가명정보) [내부링크]

개인정보보호법 상, 특별히 보호되는 개인정보 유형에 대해 알아봅니다. (출처: 개인정보 포털) [ Contents ] 1. 개인영상정보 CCTV 등 공개된 장소를 촬영한 영상은 아래와 같은 경우에 한해 정보 수집할 수 있습니다. 1) 범죄예방 및 수사 2) 시설안전 및 화재예방 3) 교통단속 2. 민감정보 민감정보는 정보 주체의 별도의 허락이 필요하며, 구분하여 정보 수집 동의를 구해야 합니다. 민감정보의 예시는 아래와 같습니다. 1) 사상 · 신념 2) 노동조합 · 정당의 가입 및 탈퇴 3) 정치적 견해 4) 건강정보 등 3. 고유식별정보 주민등록번호와 같이 개인을 식별할 수 있는 고유정보는 별도 동의와 법령에서 요구 및 허락한 경우에만 수집 가능합니다. 특히 주민등록번호는 더욱 엄격히 규정하고 있습니..

[보안] 개인정보 처리, 이용, 보관, 파기, 위탁 시 준수사항 [내부링크]

개인정보를 다룰 때에는 개인정보보호법을 준수해야 합니다. 개인정보 포털에서 제공하는 준수사항에 대하여 알아봅니다. [ Contents ] 1. 개인정보 처리 시 준수사항 - 꼭 필요한 정보가 아닌 경우, 선택 정보로 분류하고 제공을 거부할 수 있도록 해야 함 (선택정보제공 거부 시에도 재화 또는 서비스 제공을 거부해선 안됨) - 목적에 필요한 최소한의 개인정보를 수집해야 하며, 입증 책임은 개인정보처리자에게 있음 - 법률 특별 규정, 법령상 의무 준수, 계약 체결 및 이행에 필요한 경우 => 동의 없이 개인정보를 수집할 수 있음 - 만 14세 미만 아동의 개인정보를 처리하는 경우 => 법정대리인의 동의 필요 - 정보의 동의 없이 처리할 수 있는 개인정보와 동의가 필요한 개인정보를 구분해서 동의 받음 =>..

[보안] 개인정보 처리의 개념 및 단계: 수집, 이용, 제공, 보관, 파기, 국외 이전, 위탁 [내부링크]

개인정보 처리가 이루어지는 단계를 살펴보겠습니다. (출처: 개인정보 포탈) [ Contents ] 1. 개인정보 처리 단계별 검토 요소 개인정보 처리는 다음과 같은 단계로 이루어집니다. 개인정보보호법의 처벌은 '양벌규정'입니다. 취급자가 불법행위를 저질러도, 관리감독의 의무가 있는 책임자도 법적 책임을 물을 수 있기 때문에 조심해야 합니다. (행정처분 리스크) 2. 수집 - 이용 및 제공의 목적, 개인정보 항목, 이용·제공 기간 등 고지 - 최소한의 정보 수집 - 수집·이용, 제공, 국외 이전 등에 대한 동의 - 법정대리인의 동의 - 필수 정보와 선택 정보의 구분 3. 이용 - 목적 외 이용 금지 - 이용 목적 변경 시 변경 동의 - 가명처리 및 가명정보 처리의 원칙 준수 - 추가처리의 원칙 준수 등 4..

[보안] 개인정보 처리 원칙과 개인정보 자기결정권 [내부링크]

개인정보보호법에 따른 개인정보 처리 원칙과 개인정보 자기결정권에 대해 알아봅니다. (출처: 개인정보보호위원회) [ Contents ] 1. 개인정보 처리 원칙 - 목적 명확화 원칙 - 최소 수집 원칙 - 목적 외 이용금지 원칙 - 정확성·최신성 원칙 - 안전성 확보 원칙: 관리적, 기술적, 물리적 보호조치 개인정보 처리자는 위와 같은 원칙을 준수해야 합니다. 목적이 명확해야하고 최소 범위에서만 수집하며, 수집한 개인정보는 목적 외 이용되어서는 안 됩니다. 또한 개인정보의 정확성 및 최신성을 보장해야 합니다. 비밀번호 변경 외에도 가끔씩 신상정보 갱신을 요구할 때가 있는데, 해당 경우가 정확성 및 최신성을 보장하는 방식 중 하나입니다. 또한 안전성을 위한 관리적, 기술적, 물리적 보호조치가 동반되어야 합니..

[보안] 개인정보의 특징: 관련성, 임의성, 식별 가능성, 입수 가능성, 결합 가능성 [내부링크]

개인정보의 특징에 대해서 알아봅니다. (출처: 개인정보보호 위원회) [ Contents ] 1. 특정 개인과의 관련성 개인정보는 살아있는 개인을 알아볼 수 있거나, 다른 정보와 결합하여 추정할 수 있는 정보를 뜻합니다. 개인정보에 대한 자세한 설명은 아래 링크를 참조해주세요. 2023.03.28 - [Etc . . .] - [보안] 개인정보의 개념과 유형, 개인정보 보호의 목적과 권리 [보안] 개인정보의 개념과 유형, 개인정보 보호의 목적과 권리 개인정보 보호법의 개념과 내용에 대해서 알아봅니다. (출처: 개인정보보호위원회) [ Contents ] 1. 개인정보 보호법 1) 목적 개인의 자유와 권리를 보호하고, 존엄과 가치를 구현 2) 내용 개인에 대 star7sss.tistory.com 개인정보는 특정..

[보안] 식별정도에 따른 개인정보 유형 (개인정보, 가명정보, 익명정보) [내부링크]

개인정보는 식별정도에 따라 개인정보, 가명정보, 익명정보로 나눌 수 있습니다. 이에 대해 알아보겠습니다. [ Contents ] 1. 개인정보 개인정보란 살아 있는 개인에 관한 정보로서 성명, 주민등록번호 및 영상 등을 통하여 개인을 알아볼 수 있는 정보이거나 해당 정보만으로는 특정 개인을 알아볼 수 없더라도 다른 정보와 쉽게 결합하여 알아볼 수 있는 정보입니다. 1) 살아있는 개인 : 개인정보 보호법은 죽은 사람의 개인정보까지 보호하진 않습니다. 개인정보는 상속이 불가능하고, 정보주체 사망시 해당 개인정보에 대한 권리 행사 주체가 존재하지 않게 되므로, 보호대상이 되는 개인정보의 주체는 생존하는 개인에 한합니다. 2) 다른 정보와 쉽게 결합가능 : 다른 정보와 쉽게 결합가능한 정보는 '입수 가능성'과 ..

[보안] 개인정보의 개념과 유형, 개인정보 보호의 목적과 권리 [내부링크]

개인정보 보호법의 개념과 내용에 대해서 알아봅니다. (출처: 개인정보보호위원회) [ Contents ] 1. 개인정보 보호법 1) 목적 개인의 자유와 권리를 보호하고, 존엄과 가치를 구현 2) 내용 개인에 대한 사생활의 비밀 및 자유뿐만 아니라 표현의 자유, 알 권리, 신체활동의 자유 등은 물론 인격권과 재산권, 그리고 헌법에서 보장하고 있는 행복을 추구할 권리 등을 보호 2. 개인정보의 개념 - 단체나 법인의 관한 정보가 아니라 개인에 관한 정보 - 살아있는 개인에 관한 정보 (사망자는 X) - 개인을 알아볼 수 있는 정보 (다른 정보와 쉽게 결합되어 알아볼 수 있는 정보도 포함) ex) 가명처리하여 별도로 보관해 둔 추가 정보를 통해서만 특정 개인을 알아볼 수 있더라도 이는 개인정보에 해당 - 형식이..

[Oracle] 특정 월 평일/주말만 조회하는 쿼리문 작성하기 (계층적 쿼리) [내부링크]

특정 월의 평일만 구하는 쿼리문을 알아보겠습니다. [ Contents ] 1. 해당 월의 평일만 조회하는 쿼리 SELECT TO_CHAR(DATES, 'YYYYMMDD') AS 평일 FROM ( SELECT TO_DATE('20230401', 'YYYYMMDD') + LEVEL - 1 AS DATES FROM DUAL CONNECT BY LEVEL

[Oracle] CONNECT BY LEVEL: 계층적인 SQL, 쿼리에서의 반복문 [내부링크]

START WITH, CONNECT BY 문이 쓰이는 계층적 쿼리가 있습니다. 이는 쉽게 이해하면 SQL에서의 반복문이라고 생각하시면 됩니다. 이에 대해 알아보겠습니다. [ Contents ] 1. CONNECT BY LEVEL for i in range(1, 10): print(i) 위와 같은 반복문을 쿼리로 짜려면 어떻게 해야할까요? SQL은 주로 테이블을 조인하고 값을 조회하는 용도로 쓰이기 때문에, 반복문이 딱히 필요하진 않습니다. 하지만, 특정 주기의 날짜 계산이나 문구 반복, 계층적 데이터 추출에는 필요합니다. 이번 시간에는 복잡한 계층적 데이터 추출은 다루지 않고, 단순히 반복문의 기능이 필요한 경우만 다뤄보겠습니다. SELECT LEVEL FROM DUAL CONNECT BY LEVEL

[구현/수학] 백준 27918 탁구 경기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27918번: 탁구 경기 달구와 포닉스는 탁구 치는 것을 좋아한다. 윤이는 오늘도 탁구를 치는 달구와 포닉스를 보고, 누가 경기에서 승리할지 예측해 보기로 했다. 달구와 포닉스가 탁구 경기를 진행하는 규칙은 다음 www.acmicpc.net 2. 문제 풀이 경기가 모두 종료되거나, 2점 이상 차이나면 승부가 결정납니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) d = 0 p = 0 for _ in range(n): s = input().rstrip() if s == 'D': d += 1 else: p += 1 # 게임 종료 if abs(d-p) > 1: print(f"{d}:{p}") br..

[구현/수학] 백준 27868 On My Way Dorm - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27868번: On My Way Dorm 첫 번째 줄에 입력 형식과 같은 방법으로 사무실이 있는 층에서 아인이의 기숙사가 있는 층으로 퇴근하기 위한 커맨드를 출력한다. 가능한 커맨드가 여러 가지일 경우 그중 아무것이나 출력한 www.acmicpc.net 2. 문제 풀이 층마다의 가속기 성능과 도착지까지의 조작키를 입력으로 주어집니다. 이를 토대로 다시 출발지로 돌아가는 조작키를 출력해야 합니다. 3. 코드 import sys input = sys.stdin.readline n, s = map(int, input().split()) a_list = list(map(int, input().split())) command = input().rstrip() pri..

[구현/수학] 백준 27724 팝핀 소다 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27724번: 팝핀 소다 입력의 첫 번째 줄에 대회에 참가하는 선수의 수 $N$, 일어날 수 있는 이변의 수 $M$, 시은이의 탄산 내성 $K$가 공백으로 구분되어 주어진다. 주어지는 모든 수는 정수이다. $(2 \le N \le 262\,144;$ $0 \le www.acmicpc.net 2. 문제 풀이 2의 거듭제곱수로 진행되는 토너먼트에서 시은이가 최대로 이길 수 있는 경기 수를 구하는 문제입니다. 입력으로 각 선수의 기량이 주어지며, 기량이 높은 선수가 승리하게 됩니다. 다만, 이변이 일어났을 경우에는 기량이 더 적은 선수가 승리합니다. 시은이가 최대한 많은 승리를 하기 위해서는, 일단 기량별로 정렬해서 강자는 강자끼리 약자는 약자끼리 붙어야 합니다..

[Oracle/Tibero] 여러 개의 테이블을 조인해서 업데이트 (2개 이상) [내부링크]

업데이트할 값이 여러 테이블에 흩어져 있을 경우, 조인해서 한 번에 업데이트하는 방법을 소개하겠습니다. [ Contents ] 0. 오류 UPDATE EMP_TABLE A, INFO_TABLE B SET A.DEPT_NM = B.DEPT_NM , A.DEPT_CD = B.DEPT_CD WHERE A.EMP_NUMB = B.EMP_NUMB 마치 SELECT문을 작성하듯이, 그저 테이블을 조인해서 업데이트할 수 없습니다. UPDATE는 하나의 테이블만 가능하며, 위와 같이 UPDATE 뒤에 여러 테이블을 나열할 수 없습니다. 1. 서브쿼리 활용 UPDATE EMP_TABLE A SET (A.DEPT_NM , A.DEPT_CD ) = (SELECT B.DEPT_NM , B.DEPT_CD FROM INFO_TA..

[ERROR] JDBC-8056 Invalid number of columns in query [내부링크]

[ Contents ] 1. 오류 메시지 UNION ALL을 하는 과정에서 java.sql.SQLException: JDBC-8056 Invalid number of columns in query 오류가 발생했다. 2. 원인 보통 여러 개의 SELECT문 결과를 병합할 때, 칼럼의 이름과 갯수가 맞지 않을 때 발생한다. 3. 해결방안 SQL문의 칼럼 형식과 이름이 동일하도록 맞춰준다. 만약 타 SELECT문에서는 필요없는 칼럼이라도 '' AS COL와 같이 데이터를 넘겨줘야 한다.

[구현/수학] 백준 27648 증가 배열 만들기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27648번: 증가 배열 만들기 첫째 줄에 $N$, $M$, $K$가 주어진다. $\left(1 \le N , M \le 1\,000,1 \le K \le 100\,000 \right)$ www.acmicpc.net 2. 문제 풀이 2차원 배열에서, 왼쪽 또는 아래의 숫자가 크도록 하는 증가 배열을 만들어야 합니다. 최우측하단의 숫자가 K 이하라면 YES와 함께 증가 배열을 출력하고, 그렇지 않으면 NO를 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n, m, k = map(int, input().split()) # 대각선마다 1씩 늘어남 """ 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6..

[ERROR] JDBC-12007:Requested cursor [-1] was not found. [내부링크]

[ Contents ] 1. 오류 메시지 프로시저를 호출하는 과정에서 java.sql.Exception: JDBC-12007:Requested cursor [-1] was not found 오류가 발생했다. 2. 원인 SQL 타입을 sp_select으로 설정했던 것이 문제. 3. 해결방안 SQL 타입을 sp_ex_select 로 변경하니 해결되었다.

[구현/수학] 백준 27522 카트라이더: 드리프트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27522번: 카트라이더: 드리프트 레드팀은 2, 4, 5, 6등을 달성하여 총 $20$점을, 블루팀은 1, 3, 7, 8등을 달성하여 총 $19$점을 기록하였다. www.acmicpc.net 2. 문제 풀이 플레이어 10명의 완주 기록과 소속 팀 정보가 주어집니다. 주어진 표의 점수대로 순위를 매겨서 어느 팀이 이겼는지 판정합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 race = [] for _ in range(8): tmp = list(input().split()) race.append(tmp) # 정렬 race.sort() # 점수 계산 score_red = 0 score_blue = 0 score ..

[구현/수학] 백준 27465 소수가 아닌 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27465번: 소수가 아닌 수 이 대회의 운영진 중 한 명인 KSA 학생은 $17$시와 $19$시를 구별할 수 없다. 이는 당연하게도 $17$과 $19$가 모두 소수이기 때문일 것이다. 시간을 제대로 구별해서 KSA의 명예를 지키기 위해 정수 $N$ www.acmicpc.net 2. 문제 풀이 N이상의 소수가 아닌 수를 구해야 합니다. 3. 코드 n = input() print(1000000000) 입력조건에 1

[구현/수학] 백준 27159 노 땡스! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 27159번: 노 땡스! 《노 땡스!》는 $3$부터 $35$까지의 정수가 쓰인 수 카드를 이용하여 플레이할 수 있는 보드게임입니다. 수 카드를 경매를 통해서 낙찰받으며, 최종적으로 가지고 있는 수 카드를 이용하여 다음과 www.acmicpc.net 2. 문제 풀이 오름차순으로 정렬된 수들이 입력으로 주어집니다. 연속된 수가 있을 경우, 가장 작은 수만 더한 점수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) lst = list(map(int, input().split())) # 점수계산 res = 0 first = lst[0] # 최초 시작점 pre = lst[0] #..

[구현/수학] 백준 25915 연세여 사랑한다 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25915번: 연세여 사랑한다 훈규가 비밀번호를 모두 입력하기 위한 이동 거리의 최솟값을 출력한다. www.acmicpc.net 2. 문제 풀이 일종의 시저암호와 비슷합니다. 주어진 알파벳으로 ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ 슬롯이 세팅되어있고, "ILOVEYONSEI"를 맞추기위해 움직여야하는 횟수를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline c = input().rstrip() pwd = "ILOVEYONSEI" answer = 0 for i in pwd: answer += abs(ord(c) - ord(i)) c = i print(answer) 아스키 코드를 이용해서 주어진 알파벳과의 차이를 구할 수 있습니다.

[구현/수학] 백준 2851 슈퍼 마리오 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 2. 문제 풀이 10개의 수가 주어집니다. 연속된 수에 대한 누적합이 100에 최대한 가깝도록 해야 합니다. 3. 코드 import sys input = sys.stdin.readline m = [] score = 0 for i in range(10): m.append(int(input())) for j in m: score += j if score >= 100: if score - 100 > 100 - (score - j): score -= j break print(scor..

[구현/수학] 백준 26068 치킨댄스를 추는 곰곰이를 본 임스 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 26068번: 치킨댄스를 추는 곰곰이를 본 임스 2 첫 번째 줄에는 임스가 받은 기프티콘의 개수 정수 $N$이 주어진다. ($1 \le N \le 1\,000$) 두 번째 줄부터 $N$개의 줄에 걸쳐 $i$번째 기프티콘의 남은 유효기간 $x_i$가 D-xi 와 같은 형식으로 주어진다. ( www.acmicpc.net 2. 문제 풀이 기프티콘과 유효기간이 주어질 때, 90일 이하의 기프티콘 수를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) cnt = 0 for _ in range(n): gift = input().rstrip() if int(gift[2:])

[Oracle] COALESCE: Null이 아닌 가장 왼쪽 값을 찾는 함수 [내부링크]

오라클 SQL문법 중 COALESCE에 대해서 알아봅니다. [ Contents ] 1. COALESCE COALESCE(A, B, C, ...,) 1) A가 Null값이 아니면 A를 Return, Null값이면 B판정 2) B가 Null값이 아니면 B를 Retrun, Null값이면 C판정 3) C가 Null값이 아니면 C를 Retrun, Null값이면... 왼쪽 값부터 차례차례 Null 값인지 판정하며, Null값이 아니면 반환합니다. 즉, Null값이 아닌 가장 왼쪽의 값을 반환하는 함수입니다. 2. 예시 SELECT COALESCE(NULL, 'A', 'B') , COALESCE('A', NULL, 'B') , COALESCE(NULL, NULL, 'C') FROM DUAL '코얼 ~ 레스' 라는 어..

[구현/수학] 15372 A Simple Problem. - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15372번: A Simple Problem. For each test case, output a single line containing the integer K, the answer for that test case. www.acmicpc.net 2. 문제 풀이 제곱 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) print(n**2)

[구현] 백준 18409 母音を数える (Counting Vowels) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18409번: 母音を数える (Counting Vowels) 長さ N の英小文字からなる文字列 S が与えられる.S のうち母音字の個数,つまり a,i,u,e,o の個数の総和を求めよ. www.acmicpc.net 2. 문제 풀이 모음의 개수를 구합니다. 3. 코드 n = int(input()) string = input() cnt = 0 for i in string: if i in ['a', 'e', 'i', 'o', 'u']: cnt += 1 print(cnt)

[구현/수학] 백준 26069 붙임성 좋은 총총이 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 26069번: 붙임성 좋은 총총이 첫번째 줄에는 사람들이 만난 기록의 수 $N\ (1 \le N \le 1\ 000)$이 주어진다. 두번째 줄부터 $N$개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. $i + 1$번째 줄에는 $i$번째로 만난 사람들의 이름 $A_i$ www.acmicpc.net 2. 문제 풀이 ChongChong과 만난 사람들은 모두 춤을 추게 되버리는 무서운 문제입니다. 마지막까지 춤을 추고 있는 사람을 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) dance = {'ChongChong'} for i in range(1, n+1): a, b = input()...

[구현/수학] 백준 25965 미션 도네이션 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25965번: 미션 도네이션 리그오브전설 스트리머 순범이는 트위치 플랫폼으로 시청자를 끌어모으고 있다. 순범이는 '트윕' 음성 도네이션을 통해 시청자들과 소통하고는 한다. 순범이는 트윕에 '미션' 기능이 있다는 것 www.acmicpc.net 2. 문제 풀이 총 도네이셔 금액을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) for _ in range(n): m = int(input()) mission = [] for _ in range(m): mission.append(list(map(int, input().split()))) k, d, a = map(int, inp..

[구현/수학] 백준 23802 골뱅이 찍기 - 뒤집힌 ㄱ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23802번: 골뱅이 찍기 - 뒤집힌 ㄱ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 뒤집힌 ㄱ자 모양의 골뱅이가 들어있다. 뒤집힌 ㄱ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. www.acmicpc.net 2. 문제 풀이 뒤집힌 ㄱ 을 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) for _ in range(n): print("@@@@@"*n) for _ in range(n*4): print("@"*n)

[구현/수학] 백준 17284 Vending Machine - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17284번: Vending Machine 첫째 줄에 정웅이가 누른 버튼의 번호가 공백으로 사이에 두고 주어진다. 정웅이는 버튼을 한 번 이상 눌렀다. www.acmicpc.net 2. 문제 풀이 거스름돈을 계산하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline money = 5000 button = map(int, input().split()) for i in button: if i == 1: money -= 500 elif i == 2: money -= 800 else: money -= 1000 print(money)

[구현/수학] 백준 5691 평균 중앙값 문제 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5691번: 평균 중앙값 문제 세 정수 A, B, C의 평균은 (A+B+C)/3이다. 세 정수의 중앙값은 수의 크기가 증가하는 순서로 정렬했을 때, 가운데 있는 값이다. 두 정수 A와 B가 주어진다. 이때, A, B, C의 평균과 중앙값을 같게 만드는 www.acmicpc.net 2. 문제 풀이 세 수의 평균과 중앙값을 같게 만드는 가장 작은 C 값을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline while True: a, b = map(int, input().split()) if a == 0 and b == 0: break else: print(2 * a - b) 세 수의 대소관계는 c < a < b 순..

[구현/수학] 백준 9469 폰 노이만 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/9469 9469번: 폰 노이만 250마일 길이의 철로 양 끝에 두 기차 A와 B가 있다. A는 시속 10마일, B는 시속 15마일로 서로를 향해 출발했다. 두 기차의 출발과 동시에 기차 A 앞에 붙어있던 파리 한 마리가 기차가 충돌할 때 까 www.acmicpc.net 2. 문제 풀이 문제에 제시된 철로의 길이, 기차의 속도를 통해 파리가 이동한 거리를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): N, D, A, B, F = map(float, input().split()) T = D/(A+B..

[구현/수학] 백준 24264 알고리즘 수업 - 알고리즘의 수행 시간 3 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 2. 문제 풀이 MenOfPassion(A[], n) { sum

[구현/수학] 백준 14219 막대과자 포장 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14219번: 막대과자 포장 동혁이는 막대과자를 포장하는 아르바이트를 하고 있다. 막대과자는 그림과 같이 3 X1 직사각형 모양의 과자와 2 X 2 크기에 ㄴ자 모양의 과자가 있고, 동혁이는 이 과자를 포장 박스에 차곡차곡 www.acmicpc.net 2. 문제 풀이 과자를 빈틈없이 채울 수 있는지 판별하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) if (n * m) % 3 == 0: print('YES') else: print('NO')

[구현/수학] 백준 24724 현대모비스와 함께하는 부품 관리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24724번: 현대모비스와 함께하는 부품 관리 첫 번째 줄에 부품 관리 횟수를 나타내는 양의 정수 $T$가 주어진다. ($1 \le T \le 10$) 각 부품 관리에 대한 입력은 다음과 같이 주어진다. 첫 번째 줄에는 부품의 개수를 나타내는 양의 정수 $N$이 www.acmicpc.net 2. 문제 풀이 부품의 무게와 크기가 주어졌을 때, 분류하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline i = 1 for _ in range(int(input())): N = int(input()) a,b = map(int, input().split()) for _ in range(N): a,b = map(int, inpu..

[구현/수학] 백준 15923 욱제는 건축왕이야!! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15923번: 욱제는 건축왕이야!! 건축학개론을 수강한 욱제는 선린의 매점 앞에 지어질 새로운 건물의 설계를 맡았다. 욱제는 건축학개론 수업에서 수지를 만나 행복하지만, C-를 받을 정도로 건축에 소질이 없다. 컴퓨터학부에 www.acmicpc.net 2. 문제 풀이 다각형 건물의 둘레의 길이를 구합니다. 3. 코드 import sys input = sys.stdin.readline x, y = [], [] for _ in range(int(input())): a, b = map(int, input().split()) x.append(a); y.append(b) print((max(x)-min(x) + max(y)-min(y))*2)

[구현/수학] 백준 25756 방어율 무시 계산하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/25756 25756번: 방어율 무시 계산하기 메이플스토리에는 방어율 무시라는 수치가 있다. 특정 보스를 잡기 위해서는 특정 방어율 무시 수치가 되어야 데미지가 정확히 들어가는 시스템으로 이루어져 있다. 물약 아이템을 사용하여 방 www.acmicpc.net 2. 문제 풀이 1 - (1 - V)(1 - Ai) 주어진 수식대로 방어율 무시를 계산합니다. 3. 코드 n = int(input()) lst = map(int, input().split()) v = 0 for i in lst: a = 1 - (v/100) b = 1 - (i/100) v = (1 - (a * b))*100 print(v)

[구현/수학] 백준 6768 Don't pass me the ball! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6768번: Don’t pass me the ball! A CCC soccer game operates under slightly different soccer rules. A goal is only counted if the 4 players, in order, who touched the ball prior to the goal have jersey numbers that are in strictly increasing numeric order with the highest number being the www.acmicpc.net 2. 문제 풀이 골을 넣을 수 있는 경우의 수를 구합니다. 3. 코드 a = int(input()) print((a-3) ..

[구현/수학] 백준 11908 카드 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11908번: 카드 승현이는 앞면과 뒷면이 있는 카드 n장을 가지고 있습니다. 각 카드의 앞면에는 1 이상 2222 이하의 정수가 적혀 있으며, 이 수는 카드마다 서로 다릅니다. 각 카드의 뒷면에는 동물 그림이 그려져 www.acmicpc.net 2. 문제 풀이 카드 숫자의 합을 최대로 해야 합니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) li = sorted(list(map(int, input().split()))) print(sum(li[:-1])) 정렬 후, 가장 마지막 숫자만 제외한 합을 구합니다.

[구현/수학] 백준 23810 골뱅이 찍기 - 뒤집힌 ㅋ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/23810 23810번: 골뱅이 찍기 - 뒤집힌 ㅋ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 뒤집힌 ㅋ자 모양의 골뱅이가 들어있다. 뒤집힌 ㅋ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. www.acmicpc.net 2. 문제 풀이 뒤집힌 ㅋ 모양을 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) for i in range(N*5): if i < N: for j in range(N*5): print("@", end="") elif 2*N

[구현/수학] 백준 4806 줄 세기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4806번: 줄 세기 한 줄에 최대 100글자씩 주어진다. 빈 줄이 주어질 수도 있다. www.acmicpc.net 2. 문제 풀이 말 그대로 입력된 줄을 세는 문제입니다. 3. 코드 # 입력 cnt = 0 while True: try: _ = input() cnt += 1 except EOFError: break print(cnt) 몇 개의 줄이 입력될지 모르니, EOFError로 입력을 마쳐야 합니다.

[구현/수학] 백준 25704 출석 이벤트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25704번: 출석 이벤트 쇼핑몰에서 30일간 출석 이벤트를 진행한다. 쇼핑몰의 사이트를 방문하면 1일 1회 출석 도장을 받을 수 있고, 출석 도장을 여러 개 모아서 할인 쿠폰으로 교환할 수 있다. 출석 도장의 개수에 따 www.acmicpc.net 2. 문제 풀이 가장 할인을 많이 받은 금액을 출력해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) # 도장 수 p = int(input()) # 가격 # 최대 할인가격 구하기 max_discount = 0 # 도장 갯수별 할인 if n >= 5: max_discount = max(max_discount, 500) if n >= ..

[구현/수학] 백준 25793 초콜릿 피라미드 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25793번: 초콜릿 피라미드 코코는 특이하게 생긴 화이트 초콜릿과 다크 초콜릿을 무한히 많이 갖고 있다. 화이트 초콜릿은 각 모서리의 길이가 1인 사각 피라미드이고, 다크 초콜릿은 각 모서리의 길이가 1인 정사면체 모 www.acmicpc.net 2. 문제 풀이 화이트 초콜릿과 다크 초콜릿을 번갈아가며 층층이 피라미드를 쌓는 문제입니다. 3. 코드 import sys input = sys.stdin.readline """ 2*3 = 8, 7 1*2 = 2, 1 """ # 입력 t = int(input()) for i in range(t): r, c = map(int, input().split()) white = 0 floor = 0 white = r*c ..

[구현/수학] 백준 23080 스키테일 암호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/23080 23080번: 스키테일 암호 첫 번째 줄에 막대의 굵기 \(K\)가 주어진다. 두 번째 줄에 알파벳 소문자만으로 구성된 암호문 \(S\)가 주어진다. www.acmicpc.net 2. 문제 풀이 정해진 K만큼 뛰엄뛰엄 읽는 암호입니다. 3. 코드 import sys input = sys.stdin.readline k = int(input()) s = input().rstrip() answer = '' for i in range(0, len(s), k): answer += s[i] print(answer)

[구현/수학] 백준 10205 헤라클레스와 히드라 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10205번: 헤라클레스와 히드라 헤라클레스는 그리스 신화의 유명한 비극적인 영웅이다. 그는 제우스의 사생아로 태어났는데, 이때문에 제우스의 아내 헤라는 그를 매우 싫어했다. 그는 매우 강한 힘과 높은 지식을 가졌지만, www.acmicpc.net 2. 문제 풀이 불로 지지고 머리를 잘라도 남아있는 히드라의 머리 개수를 출력합니다. 3. 코드 import sys input = sys.stdin.readline lst = [] n = int(input()) for i in range(1, n+1): h = int(input()) a = input().rstrip() for j in a: if h == 0: break if j == 'b': h -= 1 eli..

[구현/수학] 백준 14592 2017 아주대학교 프로그래밍 경시대회 (Small) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14592번: 2017 아주대학교 프로그래밍 경시대회 (Small) 아주대학교 프로그래밍 경시대회(Ajou Programming Contest, APC)는 2009년 제1회를 시작으로 2014년 제6회까지 개최된 아주대학교 학생들을 위한 프로그래밍 경시대회이다. 2017년, 다른 학교에서 활발히 www.acmicpc.net 2. 문제 풀이 정렬해서 순위를 결정하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline N = int(input()) lst = [list(map(int, input().split())) for _ in range(N)] sorted_lst = sorted(lst, key=lambda x:(-..

[구현/수학] 백준 15734 명장 남정훈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15734번: 명장 남정훈 오늘도 어김없이 피시방에서 피파를 하고 있는 정훈이는 큰 고민에 빠졌다. 자신에 팀에 있는 선수들의 주 사용 발(Main Foot)이 적절하게 나눠져있지 않기 때문이다. 정훈이의 팀에는 L명의 왼발 www.acmicpc.net 2. 문제 풀이 잔류하는 최소인원 수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline L, R, A = map(int, input().rstrip().split()) a, b = min(L, R), max(L, R) t = min(A, b-a) a += t A -= t res = a*2 + (A//2*2 if A else 0) print(res)

[구현/수학] 백준 15351 인생 점수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15351번: 인생 점수 어떤 사람이 무엇을 즐기느냐에 따라 그 사람의 인생 점수를 측정할 수 있다. A를 1점, B를 2점, ... , Z를 26점으로 해, 즐기는 것의 이름의 알파벳 점수를 모두 더하면 된다. 예를 들어, "OTAKU LIFE" 는 www.acmicpc.net 2. 문제 풀이 알파벳을 더해서 인생점수를 계산합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 for _ in range(int(input())): cnt = 0 a = input().replace(" ", "").rstrip() for i in a: cnt += ord(i)-64 if cnt == 100: print("PERFECT..

[구현/수학] 백준 23348 스트릿 코딩 파이터 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23348번: 스트릿 코딩 파이터 첫째 줄에 세 가지 기술의 난이도 $A$, $B$, $C$가 '한손 코딩', '노룩 코딩', '폰코딩' 순서대로 공백을 사이에 두고 주어진다. ($0 \le A, B, C \le 1,000$) 둘째 줄에 참가한 동아리의 수 $N$이 주어진다. ($1 www.acmicpc.net 2. 문제 풀이 가장 높은 점수를 받은 동아리의 점수를 출력합니다. 3. 코드 import sys input = sys.stdin.readline level = list(map(int, input().split())) n = int(input()) grades = [] for i in range(n): grade = 0 for j in range(3..

[구현/수학] 백준 8932 7종 경기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8932번: 7종 경기 민혁이는 한국에서 열리는 7종 경기 대회에 참가한다. 7종 경기는 육상의 필드 경기와 트랙 경기 7 종목으로 이루어져 있다. (100미터 허들, 높이뛰기, 포환던지기, 200미터 달리기, 멀리뛰기, 창던 www.acmicpc.net 2. 문제 풀이 주어진 표대로 7종 경기의 점수를 계산합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 def track(A, B, C, P): return int(A * (B-P)**C) def field(A, B, C, P): return int(A * (P-B)**C) for _ in range(int(input())): li = list(map(int,..

[구현/수학] 백준 13416 주식 투자 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13416번: 주식 투자 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에는 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 www.acmicpc.net 2. 문제 풀이 주식투자로 낼 수 있는 최대 이윤을 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): mymax=0 for i in range(int(input())): tmp=list(map(int, input().split())) if max(tmp)>=0: mymax+=max(tmp) print(mymax)

[구현/수학] 백준 15820 맞았는데 왜 틀리죠? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/15820 15820번: 맞았는데 왜 틀리죠? 만영이의 코드가 모든 테스트케이스에 대해 올바른 답을 생성했다면 "Accepted"를, 샘플 테스트케이스를 틀렸다면 "Wrong Answer"을, 샘플 테스트케이스는 맞았지만 시스템 테스트케이스를 틀렸을 경 www.acmicpc.net 2. 문제 풀이 맞왜틀... 맞았는데 왜 틀렸죠.. 3. 코드 import sys input = sys.stdin.readline # 입력 s1, s2 = map(int, input().split()) li1 = [list(map(int, input().split())) for _ in range(s1)] li2 = [li..

[구현/수학] 백준 15781 헬멧과 조끼 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15781번: 헬멧과 조끼 입력의 첫째 줄에 맵에 존재하는 헬멧의 개수 N(N은 1000이하의 자연수)과 조끼의 개수 M(M은 1000이하의 자연수)이 주어진다. 둘째 줄에 각 헬멧의 방어력 h[i] (h[i]는 10억 이하의 자연수)가 N개 만큼 www.acmicpc.net 2. 문제 풀이 방어력의 최댓값을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) h = max(map(int, input().split())) a = max(map(int, input().split())) print(h+a)

[구현/수학] 백준 11367 Reprot Card Time - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11367번: Report Card Time The input will begin with a single line containing just a whole number, n, of the number of hobbits in the class, followed by n lines in the form a b, where a is the hobbit’s name (only alphabetical characters) and b is the hobbit’s grade, given as a w www.acmicpc.net 2. 문제 풀이 평점평균을 계산하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 f..

[구현/수학] 백준 17094 Serious Problem - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17094번: Serious Problem 2의 등장횟수가 더 많다면 2를 출력하고, e의 등장횟수가 더 많다면 e를 출력한다. 등장횟수가 같다면 "yee"를 출력한다. (큰 따옴표 제외) www.acmicpc.net 2. 문제 풀이 e와 2를 구분하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 s = int(input().rstrip()) count_e = input().count('e') print(['2', 'e', 'yee'][(count_e > s - count_e) + ((s - count_e) == count_e) * 2]) 파이썬에는 문자열 내장함수에 count가 있습니다. 이를 활용하..

[구현/수학] 백준 20540 연길이의 이상형 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/20540 20540번: 연길이의 이상형 졸업을 앞둔 연길이는 크리스마스가 다가올수록 외로움을 느낀다. 그런 연길이를 위해 동우는 소개팅을 시켜주지는 않고 연길이의 이상향을 찾는 것을 도와주고자 한다. MBTI 신봉자인 연길이는 www.acmicpc.net 2. 문제 풀이 해당 MBTI의 이상형을 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 s = input().rstrip() li = ['E', 'I', 'S', 'N', 'T', 'F', 'J', 'P'] for c in s: li.remove(c) res = ''.join(li) print(..

[구현/수학] 백준 13311 행운의 편지 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13311번: 행운의 편지 첫 번째 줄에 432자리 이내의 숫자 n을 출력한다. 출력 예시는 답이 아님에 주의하라. www.acmicpc.net 2. 문제 풀이 n ≡ a-1 (mod a) 다음을 만족하는 n을 구해야 합니다. 3. 코드 print(-1) -1로 나눈 나머지는 -1입니다.

[구현/수학] 백준 14568 2017 연세대학교 프로그래밍 경시대회 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14568번: 2017 연세대학교 프로그래밍 경시대회 규칙에 맞게 사탕을 분배하는 경우의 수를 출력한다. 택희, 영훈이, 남규가 받은 사탕의 수를 각각 A, B, C개라고 할 때, 서로 다른 (A, B, C) 순서쌍의 수를 세면 된다. 만일 규칙에 맞게 사탕을 분 www.acmicpc.net 2. 문제 풀이 남는 사탕은 없어야 한다. 남규는 영훈이보다 2개 이상 많은 사탕을 가져야 한다. 셋 중 사탕을 0개 받는 사람은 없어야 한다. 택희가 받는 사탕의 수는 홀수개가 되어서는 안 된다 NCS 문제 같은 조건을 따라 구현합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) s = 0 f..

[구현/수학] 백준 4435 중간계 전쟁 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4435번: 중간계 전쟁 첫째 줄에 전투의 개수 T가 주어진다. 각 전투는 두 줄로 이루어져 있다. 첫째 줄에 간달프 군대에 참여한 종족의 수가 주어진다. 이 값은 공백으로 구분되어 있으며, 호빗, 인간, 엘프, 드워프, www.acmicpc.net 2. 문제 풀이 모의 전투를 구현하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 tc = int(input()) for i in range(1, tc + 1) : gan = list(map(int, input().split())) sau = list(map(int, input().split())) gan_score = gan[0] + gan[1]*2 + ..

[구현/수학] 백준 2765 자전거 속도 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2765번: 자전거 속도 입력은 여러 줄의 데이터로 구성된다. 각 데이터는 지름, 회전수, 시간이 공백으로 구분되어 주어진다. 지름은 inch단위의 실수이며, 회전수는 정수이다. 시간은 초단위의 실수로 주어진다. 입력 www.acmicpc.net 2. 문제 풀이 자전거 이동거리와 속도를 구합니다. 3. 코드 from math import pi import sys input = sys.stdin.readline # 입력 i = 1 while True: d, r, t = map(float, input().split()) if r == 0: break dis = d/63360 * pi * r mph = dis / t * 3600 print("Trip #%d: %..

[구현/수학] 백준 3059 등장하지 않는 문자의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/3059 3059번: 등장하지 않는 문자의 합 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 www.acmicpc.net 2. 문제 풀이 등장하지 않은 문자의 아스키 코드값 합계를 구합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 t = int(input()) for _ in range(t): alphabet = [0] * 27 value = input().rstrip() for i in range(len(..

[구현/수학] 백준 11312 삼각 무늬 - 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11312번: 삼각 무늬 - 2 무엇이든 덮어버리는 것을 좋아하는 지은이는 한변의 길이가 A인 정삼각형을 한변의 길이가 B인 정삼각형으로 완전히 덮어 버리고자 한다. 두개의 정수 A, B 가 주어지고, B ≤ A 이고, A를 B로 www.acmicpc.net 2. 문제 풀이 길이가 A인 정삼각형을 길이가 B인 정삼각형으로 덮기 위한 최소 개수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 for _ in range(int(input())): a, b = map(int, input().split()) print((a//b)**2) 길이는 1차원이고, 너비는 2차원입니다. 따라서 넓이비는 길이비의 제곱..

[구현/수학] 백준 17450 과자 사기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17450번: 과자 사기 입력은 총 3개의 줄로 이루어지며, 각 줄에는 S, N, U의 순서대로 한 봉지의 가격과 무게가 띄어쓰기를 사이에 두고 주어진다. 모든 입력값은 1 이상 1,000 이하의 정수이다. 세 종류의 과자의 가성 www.acmicpc.net 2. 문제 풀이 최적의 가성비 과자를 사는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 nums = [] for i in range(3): a, b = map(int, input().split()) if a * 10 >= 5000: a = a * 10 - 500 else: a *= 10 b *= 10 nums.append(b / a) if max(..

[구현/수학] 백준 23303 이 문제는 D2 입니다. - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23303번: 이 문제는 D2 입니다. 문자열 안에 $D2$나 $d2$가 들어있다면 D2를 출력한다. 두 글자는 반드시 붙어있어야 하며, $D$/$d$와 $2$ 사이에 공백이 있어도 안 된다. 만약 문자열 안에 해당 문자가 없다면 unrated를 출력한다. www.acmicpc.net 2. 문제 풀이 네이버 D2 홍보문제입니다. 3. 코드 print('D2' if 'd2' in input().lower() else 'unrated')

[구현/수학] 백준 10865 친구 친구 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10865번: 친구 친구 첫째 줄에 도현이네 반 학생의 수 N(1 ≤ N ≤ 100,000), M(0 ≤ M ≤ 1,000,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 나타내는 A B가 한 줄에 하나씩 주어진다. A B가 입력으로 주어진 경우 www.acmicpc.net 2. 문제 풀이 친구 관계를 찾는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n, m = map(int, input().split()) cnt = [0] * (n+1) for i in range(m): a, b = map(int, input().split()) cnt[a] += 1 cnt[b] += 1 for i in..

[구현/수학] 백준 25591 푸앙이와 종윤이 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25591번: 푸앙이와 종윤이 베다수학 곱셈법을 쓰는 과정에서 구하는 $a$, $b$, $c$, $d$, $q$, $r$을 첫 줄에 공백으로 구분해서 출력한다. 둘째 줄에 곱셈 결과의 앞의 두 자릿수, 뒤의 두 자릿수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 문제 풀이 문제에 나온대로, 인도의 베다수학 곱셈법을 구현합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 i, j = map(int, input().split()) # 계산 a = 100 - i b = 100 - j c = 100 - (a + b) d = a * b q = d // 100 r = d % 100 print(a, b, ..

[구현/수학] 백준 14913 등차수열에서 항 번호 찾기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14913번: 등차수열에서 항 번호 찾기 k가 몇 번째 항인지 출력한다. 만약, k가 주어진 a와 d로 만들어진 등차수열의 수가 아니면 "X"를 출력한다. www.acmicpc.net 2. 문제 풀이 첫 항 a와 공차 d로 만든 등차수열에서 주어진 k가 몇 번째 항인지 찾는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 a, d, k = map(int, input().split()) print((k-a)//d +1 if (k-a)%d == 0 and (k-a)//d >= 0 else 'X')

[구현/수학] 백준 25576 찾았다 악질 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/25576 25576번: 찾았다 악질 구수한 욕설과 귀여운 동남권 사투리가 매력인 인기 스트리머 랄파는 오늘도 열심히 게임 방송을 한다. 랄파는 과거 게임 최상위 랭커를 달성했던 빛나는 시절이 있었으나, 현재는 실력이 많이 www.acmicpc.net 2. 문제 풀이 악질 시청자인지 판별하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n, m = map(int, input().split()) l = list(map(int, input().split())) res = 0 # 랄파와 사이가 좋지 않은 스트리머 수 for _ in range(n-1)..

[구현/수학] 백준 13698 Hawk eyes - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13698번: Hawk eyes 첫째 줄에 재열이가 컵을 섞는 순서가 주어진다. 이 순서는 위 그림에 있는 A, B, C, D, E, F 중 하나이다. 재열이는 컵을 최대 200번 섞는다. www.acmicpc.net 2. 문제 풀이 야바위를 구현하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 s = input().rstrip() lst = [1, 2, 3, 4] for c in s: if c == 'A': lst[0], lst[1] = lst[1], lst[0] elif c == 'B': lst[0], lst[2] = lst[2], lst[0] elif c == 'C': lst[0], lst[3] ..

[구현/수학] 백준 25600 Triathon - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25600번: Triathlon 트라이애슬론(Triathlon)이란 라틴어에서 $3$가지라는 의미를 가진 tri와 경기를 뜻하는 athlon의 합성어이다. 우리나라에서는 트라이애슬론 대신 철인 3종 경기로 알려져 있다. 트라이애슬론은 여러 www.acmicpc.net 2. 문제 풀이 주어진 공식대로 가장 높은 점수를 계산하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) res = 0 # 가장 높은 점수 for _ in range(n): a, d, g = map(int, input().split()) score = a * (d+g) if a == d+g: score *= 2..

[구현/수학] 백준 25625 샤틀버스 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25625번: 샤틀버스 3년만에 열리는 대면 SNUPC를 위해서, 민준이는 제2공학관으로 가고자 한다! 제2공학관에 가는 버스는 여러 가지가 있다. 관악02, 5511, 5513, 5516... 어떤 버스를 타더라도 단점이 있는데, 그것은 바로 www.acmicpc.net 2. 문제 풀이 버스를 기다리는 시간을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline x, y = map(int, input().split()) if x > y: print(x+y) else: print(y-x)

[구현/수학] 백준 22938 백발백준하는 명사수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 22938번: 백발백준하는 명사수 백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데... 바로 두 과녁을 www.acmicpc.net 2. 문제 풀이 두 원이 겹치는 부분이 존재하는지 판별하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline x1, y1, r1 = map(int, input().split()) x2, y2, r2 = map(int, input().split()) d = (x1-x2)**2+(y1-y2)**2 print('YES' if (r1+r2)**2>d else 'NO') 판별식은 (r..

[구현/수학] 백준 2975 Transations - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2975번: Transactions Input consists of a number of lines, each representing a transaction. Each transaction consists of an integer representing the starting balance (between –200 and +10,000), the letter W or the letter D (Withdrawal or Deposit), followed by a second integer www.acmicpc.net 2. 문제 풀이 은행에서 거래 후 잔고를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline wh..

[구현/수학] 백준 18247 겨울왕국 티켓 예매 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18247번: 겨울왕국 티켓 예매 각 테스트 케이스에 대해, 한 줄에 하나씩 L열의 네 번째 자리의 좌석 번호를 출력한다. 만약 영화관에 L열 네 번째 자리가 존재하지 않는다면 -1을 출력한다. www.acmicpc.net 2. 문제 풀이 L열의 4번째 자리를 구합니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): N, M = map(int, input().split()) print(11*M + 4 if N >= 12 and M >= 4 else -1) A B C D E F G H I J K L => L은 12번째 알파벳입니다. 즉, N은 12 이상이고 M은 4 이상이어..

[구현/수학] 백준 14579 덧셈과 곱셈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14579번: 덧셈과 곱셈 첫째 줄에 a, b (1 ≤ a < b ≤ 1000)가 주어진다. www.acmicpc.net 2. 문제 풀이 (1+2+…+a) * (1+2+…+(a+1)) * … * (1+2+…+(b-1)) * (1+2+…+b) 위 식을 계산해야 합니다. 3. 코드 import sys input = sys.stdin.readline a, b = map(int, input().split()) res = 1 for i in range(a, b+1): res *= sum([j for j in range(1, i+1)]) print(res % 14579) 식 그대로 항을 늘려가며 더한 것을 곱해줍니다.

[구현/수학] 백준 12756 고급 여관 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 12756번: 고급 여관 플레이어 A의 카드가 남아있다면 "PLAYER A"를, 플레이어 B의 카드가 남아있다면 "PLAYER B"를 출력한다. 모두 죽은 상태라면 "DRAW"를 따옴표 없이 출력한다. www.acmicpc.net 2. 문제 풀이 하스스톤의 하수인 대결입니다. 3. 코드 import sys input = sys.stdin.readline a1, h1 = map(int, input().split()) a2, h2 = map(int, input().split()) a, b = h1//a2 + (1 if h1%a2 else 0), h2//a1 + (1 if h2%a1 else 0) if a == b: print("DRAW") elif a > b:..

[구현/수학] 백준 21964 선린인터넷고등학교 교가 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21964번: 선린인터넷고등학교 교가 알파벳 대문자, 알파벳 소문자, 쉼표, 마침표의 아스키 코드는 각각 65-90, 97-122, 44, 46이다. www.acmicpc.net 2. 문제 풀이 마지막 다섯 글자만 출력한다. 3. 코드 import sys input = sys.stdin.readline _ = int(input()) s = input() print(s[-6:])

[구현/수학] 백준 4740 거울, 오! 거울 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4740번: 거울, 오! 거울 하나 또는 그 이상의 줄에 각각 ASCII 글자로 나타낼 수 있는 단어들(알파벳, 숫자, 공백, 구두점 등)로 구성된 문장을 입력한다. 각 문장은 최소 1글자에서 최대 80글자로 이루어져 있으며, ***을 www.acmicpc.net 2. 문제 풀이 거꾸로 출력합니다. 3. 코드 while True: a = input() if a == "***": break else: print(a[::-1]) 파이썬은 [::-1] 슬라이싱을 이용해서 문자열을 뒤집을 수 있습니다.

[구현/수학] 백준 5666 Hot Dogs - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5666번: Hot Dogs In 2012 a new world record was set in the famous Nathan’s Hot Dog Eating Competition: the champion, Joey Chestnut, ate 68 hot dogs in ten minutes, an amazing increase from the 62 hot dogs eaten by the same Chestnut in 2011. Nathan’s Famous Corporation, www.acmicpc.net 2. 문제 풀이 H를 P로 나눈 값을 소수 둘째자리까지 출력합니다. 3. 코드 while True: try: H, P = map(int, input().s..

[구현/수학] 백준 9366 삼각형 분류 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/9366 9366번: 삼각형 분류 입력의 첫 줄에는 테스트케이스의 개수 T(1

[구현/수학] 백준 21866 추첨을 통해 커피를 받자 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21866번: 추첨을 통해 커피를 받자 첫 번째 줄에 9개의 정수가 주어진다. 각 정수는 $0$ 이상 $1\,000$ 이하의 정수다. 각 정수는 해당 학생이 각 문제에서 얻은 점수를 의미한다. www.acmicpc.net 2. 문제 풀이 100점 미만이면 추첨대상자가 아니고, 100점 이상이면 추첨대상자, 최대 점수 초과하면 해커입니다. 3. 코드 import sys input = sys.stdin.readline max_score = [100, 100, 200, 200, 300, 300, 400, 400, 500] score = list(map(int, input().split())) total_score, hacker = 0, 0 for i in ran..

[구현/수학] 백준 16504 종이접기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16504번: 종이접기 종이접기와 수학을 좋아하는 주성이는 종이접기와 수학을 한꺼번에 할 수 있는 놀이를 찾아냈다. 바로 N×N 크기를 가지는 색종이의 각 칸에 수를 적어놓고, 색종이를 반으로 접을 때마다 겹치는 www.acmicpc.net 2. 문제 풀이 색종이가 겹쳐지는 부분의 수를 더합니다. 즉, 모두 다 더해야 합니다. 3. 코드 import sys input = sys.stdin.readline s = 0 for _ in range(int(input())): s += sum(list(map(int, input().split()))) print(s)

[구현/수학] 백준 11970 Fence Painting - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11970번: Fence Painting Several seasons of hot summers and cold winters have taken their toll on Farmer John's fence, and he decides it is time to repaint it, along with the help of his favorite cow, Bessie. Unfortunately, while Bessie is actually remarkably proficient at paintin www.acmicpc.net 2. 문제 풀이 좌표평면 상에서 그려지는 사각형의 둘레를 찾는 문제라고 생각하면 됩니다. 3. 코드 import sys input = ..

[구현/수학] 백준 9493 길면 기차, 기차는 빨라, 빠른 것은 비행기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9493번: 길면 기차, 기차는 빨라, 빠른 것은 비행기 한 줄에 테스트 케이스가 하나씩 주어진다. 각 테스트 케이스는 세 개의 정수 M(1 ≤ M ≤ 10,000), A 그리고 B(1 ≤ A < B ≤ 1000)로 이루어져 있다. 정수는 공백으로 구분되어 있다. 마지막 테스트 케이 www.acmicpc.net 2. 문제 풀이 거리 M을 이동했을 때, 비행기와 기차의 속도 차이에 의해 발생하는 시간 차이를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline while True: M, A, B = map(int, input().split()) if M == A == B == 0: break t = round((M/A..

[구현/수학] 백준 9501 꿍의 우주여행 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9501번: 꿍의 우주여행 꿍은 우주여행을 하고 싶어져서 우주여행을 계획하기 시작했다. 몇 가지를 고려해본 결과 우주여행에는 우주선의 연료와 목적지까지의 도착시간이 가장 큰 영향을 미치는것으로 파악됐다. 꿍 www.acmicpc.net 2. 문제 풀이 최고속도로 목적지까지 갈 때, 갈 수 있는 우주선의 개수를 구합니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): N, D = map(int, input().split()) cnt = 0 for i in range(N): v, f, c = map(int, input().split()) if v * f/c >= D: cnt ..

[구현/수학] 백준 5612 터널의 입구와 출구 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5612번: 터널의 입구와 출구 첫째 줄에 조사한 시간 n이 주어진다. 둘째 줄에는 조사를 시작할 때, 터널 안에 들어있는 차량의 수 m이 주어진다. 다음 n개 줄의 i번째 줄(i = 1 ~ n)의 정보는 조사를 시작한지 (i-1)분이 경과한 시 www.acmicpc.net 2. 문제 풀이 터널로 지나가는 차량 수가 주어집니다. 터널에 가장 많은 차량이 머무를 때의 차량 수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) tmp = [] tmp.append(int(input())) for i in range(n): a, b = map(int, input().split()) tmp..

[구현/수학] 백준 2721 삼각수의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2721번: 삼각수의 합 n번째 삼각수, T(n)은 1부터 n까지의 합이다. T(n) = 1 + ... + n. 이것은 삼각형 모양으로 표현할 수 있다. 아래 그림은 T(4)를 나타낸 것이다. 다음과 같은 식을 통해 가중치를 부여한 삼각수의 합을 구 www.acmicpc.net 2. 문제 풀이 W(n) = Sum[k=1..n; k*T(k+1)] T(n)은 1부터 n까지의 합입니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): n = int(input()) res = sum(k*sum(range(k+2)) for k in range(1, n+1)) print(res) 1부..

[구현/수학] 백준 1703 생장점 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1703번: 생장점 branchorama 나무는 특이한 규칙을 가지고 성장합니다. 어린 branchorama 초목은 하나의 잎을 꼭대기에 가진 가는 묘목이며, 그 잎에는 생장점이 있습니다. 성장하는 계절 동안 나무의 생장점들은 여 www.acmicpc.net 2. 문제 풀이 가지의 수(splitting factor)와 가지치기한 수(p)가 주어집니다. 가지당 1개씩 나뭇잎이 붙어있다고 가정하므로, 가지의 수가 곧 나뭇잎의 수입니다. 이를 이용하여 나뭇잎의 수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline while True: lst = list(map(int, input().split())) if lst[0..

[구현/수학] 백준 5613 계산기 프로그램 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net 2. 문제 풀이 사칙연산을 할 수 있는 계산기 프로그램을 만듭니다. 3. 코드 res = int(input()) while True: op = input() if op == '=': break n = int(input()) if op == '+': res += n; elif op == '-': res -= n; elif op == '*': res *= n; elif op == '/': res //=..

[구현/수학] 백준 15917 노솔브 방지문제야!! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15917번: 노솔브 방지문제야!! 어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은 www.acmicpc.net 2. 문제 풀이 어떤 수를 2의 거듭제곱 꼴로 나타낼 수 있는지를 판별합니다. 3. 코드 # 입력 Q = int(input()) for _ in range(Q): a = bin(int(input()))[2:] a_sum = sum(list(map(int, a))) if a_sum == 1: print(1) else: print(0) 단순히 2의 제곱인지 판별하면 시간초과가 납니다. 이진수를..

[구현/수학] 백준 4470 줄번호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4470번: 줄번호 텍스트에서 줄을 입력받은 뒤, 줄 번호를 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 주어지는 텍스트에 인덱스만 달아주면 됩니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) for i in range(1, n+1): sentence = input().rstrip() print(f"{i}. {sentence}") f-string을 이용하면 쉽게 구현할 수 있습니다.

[구현/수학] 백준 7510 고급 수학 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/7510 7510번: 고급 수학 각 테스트 케이스마다 "Scenario #i:"를 출력한다. i는 테스트 케이스 번호이며, 1부터 시작한다. 그 다음 줄에는 입력으로 주어진 삼각형이 직각 삼각형인 경우에는 "yes", 아닌 경우에는 "no"를 출력 www.acmicpc.net 2. 문제 풀이 직각삼각형인지를 판별하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline for i in range(int(input())): lst = sorted(map(int, input().split())) if lst[0]**2 + lst[1]**2 == lst[2]**2: p..

[구현/수학] 백준 9517 아이 러브 크로아티아 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9517번: 아이 러브 크로아티아 "I love Croatia"는 네델란드의 인기 티비 프로그램 "I love my country"의 포맷 라이센스를 수입해 만든 크로아티아의 티비쇼이다. 이 티비쇼에서 가장 인기있는 게임은 "Happy Birthday"이며, 이 게임에 대한 www.acmicpc.net 2. 문제 풀이 제한 시간은 3분 30초(210초)입니다. 정답을 맞추면 옆 사람에게 폭탄이 넘어가며, 문제를 푸는 데에 얼마나 걸렸는지 입력으로 주어집니다. 폭탄이 누구에게서 터졌는지를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline k = int(input()) n = int(input()) time = 0 ..

[구현/수학] 백준 6321 IBM 빼기 1 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6321번: IBM 빼기 1 첫째 줄에 컴퓨터의 개수 n이 주어진다. 다음 줄부터 n개의 줄에는 컴퓨터의 이름이 주어진다. 컴퓨터의 이름은 최대 50글자이며, 알파벳 대문자로만 이루어져 있다. www.acmicpc.net 2. 문제 풀이 알파벳을 한 자리씩 미는 문제입니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) for x in range(1, n + 1): data = input().rstrip() result = '' for i in range(len(data)): value = ord(data[i]) + 1 if value > 90: value = 65 result += chr(va..

[수학/브루트포스] 백준 4690 완전 세제곱 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4690번: 완전 세제곱 페르마의 마지막 정리는, a, b, c가 0이 아닌 정수이고, n이 2보다 큰 자연수 일 때, an = bn + cn을 만족하는 자연수 a, b, c가 존재하지 않는다는 정리이다. 이 정리는 아직 증명되지 않았다. 하지만, 완 www.acmicpc.net 2. 문제 풀이 a^3 = b^3 + c^3 + d^3 위 식을 만족하는 자연수 쌍을 찾는 문제입니다. (단 a

[구현/수학] 백준 5217 쌍의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5217번: 쌍의 합 1보다 크거나 같고 12보다 작거나 같은 자연수 n이 주어졌을 때, 합이 n이 되는 두 자연수의 쌍을 찾는 프로그램을 작성하시오. 예를 들어, 5가 주어진 경우 가능한 쌍은 1,4와 2,3이 있다. 두 수는 www.acmicpc.net 2. 문제 풀이 서로 다른 두 수의 합으로 n을 만드는 경우를 출력합니다. 3. 코드 import sys input = sys.stdin.readline for _ in range(int(input())): n = int(input()) start = 1 print("Pairs for %d:" % n, end=' ') for k in range((n - 1) // 2): if k != 0: print('..

[구현/수학] 백준 3029 경고 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3029번: 경고 첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다. 둘째 줄에는 나트륨을 던질 시간 www.acmicpc.net 2. 문제 풀이 현재 시간과 나트륨 폭탄이 터지는 시간이 주어집니다. 나트륨 폭탄이 몇 시간 뒤에 터지는지를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline h1, m1, s1 = map(int, input().split(':')) h2, m2, s2 = map(int, input().split(':')) t1 = h1*60*60 + m1*60 + s..

[구현/수학] 백준 4892 숫자 맞추기 게임 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4892번: 숫자 맞추기 게임 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n0으로 이루어져 있다. (0 < n0 < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 2. 문제 풀이 1) 친구에게 n1 = 3*n0 계산을 하라고 한 뒤, n1이 짝수인지 홀수인지를 말해달라고 한다. 2) n1이 짝수라면, n2 = n1/2를, 홀수라면 n2 = (n1+1)/2를 계산해달라고 한다. 3) n3 = 3*n2의 계산을 부탁한다. 4) 친구에게 n4 = n3/9를 계산한 뒤, 그 값을 말해달라고 한다. (n4는 나눗셈의 몫이다) 5) n1이 짝수였다면, n0 = 2*n4로,..

[구현/수학] 백준 6378 디지털 루트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6378번: 디지털 루트 양의 정수 N의 디지털 루트를 구하려면 N을 이루고 있는 모든 자리수를 더해야 한다. 이때, 더한 값이 한 자리 숫자라면, 그 수가 N의 디지털 루트가 된다. 두 자리 이상 숫자인 경우에는 다시 그 www.acmicpc.net 2. 문제 풀이 각 자릿수를 더해서 한 자리 수가 될 때까지 반복합니다. 3. 코드 import sys input = sys.stdin.readline while True: num = int(input()) if num == 0: break while (1): num = sum(list(map(int, str(num)))) if (num // 10 == 0): print(num) break

[구현/수학] 백준 2997 네 번째 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2997번: 네 번째 수 첫째 줄에 상근이가 고른 4개의 수 중 3개가 주어진다. 이 수는 크기 순이 아닐 수도 있고, -100보다 크거나 같고, 100보다 작거나 같은 정수이다. www.acmicpc.net 2. 문제 풀이 등차수열인 세 수가 주어집니다. 나머지 하나의 항을 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline a = list(map(int, input().split())) a.sort() if a[1] - a[0] == a[2] - a[1]: print(a[2] * 2 - a[1]) elif a[1] - a[0] > a[2] - a[1]: print(a[1] * 2 - a[2]) else: pri..

[구현/수학] 백준 4880 다음수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4880번: 다음수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 수열의 연속하는 세 정수 a1, a2, a3이 한 줄에 주어진다. (-10,000 < a1, a2, a3 < 10,000) a1, a2, a3은 서로 같지 않다. 입력의 마지막 www.acmicpc.net 2. 문제 풀이 주어진 수열이 등차인지, 등비인지 판별하고 그 다음에 올 항을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline while True: a, b, c = map(int, input().split()) if a == b == c == 0: break if b-a == c-b: print(f"AP {c + c..

[구현/수학] 백준 11586 지영 공주님의 마법 거울 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11586번: 지영 공주님의 마법 거울 천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려 www.acmicpc.net 2. 문제 풀이 심리상태가 1이면 그대로 출력, 2이면 좌우반전, 3이면 상하반전해야하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) mirror = [input().rstrip() for _ in range(n)] k = int(input()) if k == 1: # 원본 출력 print(*mirror, sep='\n') elif..

[구현/수학] 백준 23812 골뱅이 찍기 - 돌아간 ㅍ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23812번: 골뱅이 찍기 - 돌아간 ㅍ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 반시계 방향으로 90도 돌아간 ㅍ자 모양의 골뱅이가 들어있다. 돌아간 ㅍ자 모양은 가로 및 세로로 각각 5개 www.acmicpc.net 2. 문제 풀이 돌아간 ㅍ 모양을 @모양으로 찍는 문제입니다. 3. 코드 n = int(input()) for _ in range(n): print('@'*n + ' '*(3*n) + '@'*n) for _ in range(n): print('@'*(5*n)) for _ in range(n): print('@'*n + ' '*(3*n) + '@'*n) for _ in range(n): print('@'..

[구현/수학] 백준 14545 Square - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14545번: Square For each integer l, you should output the total number of squares which can be seen in an image of a grid square of length l, with one line of output for each line of input. www.acmicpc.net 2. 문제 풀이 길이가 i인 정사각형 격자에 포함된 정사각형 수를 찾는 문제입니다. 흔히 넌센스나 두뇌 퀴즈에서 많이 볼 수 있는 문제죠. 3. 코드 p = int(input()) for _ in range(p): i = int(input()) res = 0 for j in range(1, i+1..

[수학/브루트포스] 백준 1016 제곱 ㄴㄴ수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1016번: 제곱 ㄴㄴ 수 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수 www.acmicpc.net 2. 문제 풀이 min과 max가 주어집니다. 두 정수 사이에서 제곱수의 배수가 아닌 수를 판별하여 개수를 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) +..

[구현/수학] 백준 15818 오버플로우와 모듈러 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15818번: 오버플로우와 모듈러 첫 줄에 연산될 정수의 개수 N(1 ≤ N ≤ 100)과 M(1 ≤ M ≤ 2,147,483,647)이 주어진다. 두 번째 줄에는 N개의 정수 ai (1 ≤ ai ≤ 2,147,483,647)가 한 줄로 주어진다. www.acmicpc.net 2. 문제 풀이 문제 그대로, N개의 정수를 M으로 나눈 나머지로 곱해갑니다. 3. 코드 n, m = map(int, input().split()) numlist = list(map(int, input().split())) res = numlist[0] % m for i in numlist[1:]: res *= i res %= m print(res)

[구현/수학] 백준 4562 No Brainer - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4562번: No Brainer For each data set, there will be exactly one line of output. This line will be "MMM BRAINS" if the number of brains the zombie eats is greater than or equal to the number of brains the zombie requires to stay alive. Otherwise, the line will be "NO BRAINS". www.acmicpc.net 2. 문제 풀이 단순 비교 문제입니다. 3. 코드 t = int(input()) for _ in range(t): n, m = map(int, ..

[구현/수학] 백준 2712 미국 스타일 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2712번: 미국 스타일 첫째 줄에 테스트 케이스의 개수 T(1

[구현/수학] 백준 23804 골뱅이 찍기 - ㄷ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23804번: 골뱅이 찍기 - ㄷ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㄷ자 모양의 골뱅이가 들어있다. ㄷ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사 www.acmicpc.net 2. 문제 풀이 ㄷ 자 모양의 @를 찍는 문제입니다. 3. 코드 n = int(input()) for _ in range(n): print("@@@@@"*n) for _ in range(n*3): print("@"*n) for _ in range(n): print("@@@@@"*n) 한 획씩 그려나갑니다.

[구현/수학] 백준 23530 Not A + B - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23530번: Not A + B You are required to output an integer $c$ for each test in a separate line. If there are multiple solutions, you may output any of them. www.acmicpc.net 2. 문제 풀이 두 자연수의 합과 같지 않은 수를 출력하는 문제입니다. 3. 코드 T = int(input()) for _ in range(T): a, b = map(int, input().split()) print(1) 두 자연수의 합의 최소값은 2입니다. (∵ 1+1 = 2) 따라서 1을 출력하면 됩니다.

[구현/수학] 백준 14182 Tax - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14182번: Tax The amount of income tax imposed on any taxpayer depends on his/her income. For an income less than or equal to 1,000,000 Oshloobs, no tax is paid. For an income greater than 1,000,000 and less than or equal to 5,000,000 Oshloobs, the tax is 10% of the inc www.acmicpc.net 2. 문제 풀이 문제에서 주어진 제약사항대로 조건문을 구현해서, 세금을 구합니다. 3. 코드 while True: t = int(input()) if t ..

[구현/수학] 백준 11320 삼각 무늬 - 1 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11320번: 삼각 무늬 - 1 무엇이든 덮어버리는 것을 좋아하는 구사과는 한 변의 길이가 A인 정삼각형을 한 변의 길이가 B인 정삼각형으로 완전히 덮어버리고자 한다. 두 개의 정수 A, B가 주어지고, B ≤ A 이고, A를 B로 www.acmicpc.net 2. 문제 풀이 길이가 A인 정삼각형을 길이가 B인 정삼각형으로 덮는 문제입니다. 이 때, 필요한 길이가 B인 정삼각형의 최소 개수는 몇 개일까요? 3. 코드 T = int(input()) for i in range(T): A, B = map(int, input().split()) print((A//B)**2) 너비는 2차원(제곱), 부피는 3차원(세제곱)입니다. A//B의 정수비에 제곱을하면 최소 ..

[구현/수학] 백준 16483 접시 안의 원 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16483번: 접시 안의 원 첫째 줄에 양의 정수 T의 값이 주어진다. 단, T의 값은 10,000 이하이다. www.acmicpc.net 2. 문제 풀이 두 동심원의 반지름을 각각 a, b라고 할 때, a^2 - b^2를 구하는 문제입니다. 이 역시 피타고라스 정리를 이용한 문제입니다. 3. 코드 T = int(input()) print(round((T/2)**2)) (빗변의 높이)**2 - (밑변의 길이)**2 = (높이)**2 입니다.

[구현/수학] 백준 14491 9진수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14491번: 9진수 첫째 줄에 10진수 T(1 ≤ T ≤ 10,000)가 주어진다. www.acmicpc.net 2. 문제 풀이 10진수를 9진수로 바꾸는 문제입니다. 3. 코드 import string # 입력 t = int(input()) # 9진수 변환 tmp = string.digits+string.ascii_lowercase def conv(num, base): q, r = divmod(num, base) if q == 0 : return tmp[r] else : return conv(q, base) + tmp[r] print(conv(t, 9)) 9진수로 변환합니다. divmod 함수는 몫과 나머지를 한 번에 구해주는 함수이며, 이를 통해 9진..

[구현/수학] 백준 16479 컵라면 측정하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16479번: 컵라면 측정하기 첫째 줄에 K의 값이 주어진다. 둘째 줄에는 D1과 D2의 값이 사이에 공백을 한 개 두고 차례대로 주어진다. 단, K, D1, D2의 값은 양의 정수이다. www.acmicpc.net 2. 문제 풀이 피타고라스의 정리를 이용해서 (컵라면의 높이)^2를 구하는 문제입니다. 직각삼각형을 이용해서 h를 구할 수 있습니다. 3. 코드 # 입력 k = int(input()) d1, d2 = map(int, input().split()) # 계산(피타고라스의 정리) res = k**2 - ((d1-d2)/2)**2 print(res) 높이의 제곱을 구하는 문제이므로, 따로 루트를 할 필요가 없습니다.

[구현/수학] 백준 17350 2루수 이름이 뭐야 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17350번: 2루수 이름이 뭐야 선수들 중 뭐(anj)라는 이름을 가진 사람이 있으면 "뭐야;"를, 없으면 "뭐야?"를 출력한다. www.acmicpc.net 2. 문제 풀이 2루수가 누구야.. 밈이 이용된 간단한 문제입니다. 3. 코드 import sys input = sys.stdin.readline N = int(input()) yn = 0 for _ in range(N): if input().rstrip() == "anj": yn = 1 print("뭐야;") if yn == 1 else print("뭐야?") 선수들 이름 중에 anj가 있는지를 판별합니다.

[구현/수학] 백준 11109 괴짜 교수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11109번: 괴짜 교수 첫째 줄에 입력으로 테스트케이스의 개수 T (T ≤ 1000)가 주어진다. 각각의 테스트케이스에 대해 정수 d, n, s, p가 한 칸의 공백을 사이로 주어진다. d (0 ≤ d ≤ 1000000)는 병렬 버전을 개발하는데 www.acmicpc.net 2. 문제 풀이 직렬버전과 병렬버전을 시도했을 때의 시간을 비교합니다. 3. 코드 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): d, n, s, p = map(int, input().split()) # 병렬이 좋음 if d + n*p < n*s: print("parallelize") elif d + ..

[구현/수학] 백준 20361 일우는 야바위꾼 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20361번: 일우는 야바위꾼 첫째 줄에 N (3 ≤ N ≤ 200,000), X (1 ≤ X ≤ N), K (1 ≤ K ≤ 100,000)가 공백으로 구분되어 주어진다. 둘째 줄부터 K개의 줄에는 순서대로 바꾼 두 컵의 위치 Ai, Bi (1 ≤ Ai, Bi ≤ N, Ai ≠ Bi)가 공백 www.acmicpc.net 2. 문제 풀이 야바위를 직접 구현하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline N, X, K = map(int, input().split()) cup = [0] * (N+1) cup[X] = 1 for _ in range(K): a, b = map(int, input().split()) c..

[구현/수학] 백준 9094 수학적 호기심 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9094번: 수학적 호기심 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, n과 m이 주어진다. 두 수는 0보다 크고, 100보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 (a2+b2+m)/(ab) 가 정수인 쌍의 개수를 구합니다. 3. 코드 T = int(input()) for _ in range(T): n, m = map(int, input().split()) res = 0 for a in range(1, n): for b in range(a+1, n): if (a**2 + b**2 + m) % (a*b) == 0: res += 1 print(res) (a2+b2+m)/(ab) 가 정수가 ..

[구현/수학] 백준 20360 Binary numbers - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20360번: Binary numbers Given a positive integer n, find the positions of all 1’s in its binary representation. The position of the least significant bit is 0. Write a program that: reads a positive integer n from the standard input, computes the positions of 1’s in the binar www.acmicpc.net 2. 문제 풀이 주어진 수를 이진수로 변환한 뒤, 1의 위치를 출력하는 문제입니다. 3. 코드 n = bin(int(input()))[2:] ..

[구현/수학] 백준 15236 Dominos - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15236번: Dominos Dominoes are gaming pieces used in numerous tile games. Each domino piece contains two marks. Each mark consists of a number of spots (possibly zero). The number of spots depends on the set size. Each mark in a size N domino set can contain between 0 and N www.acmicpc.net 2. 문제 풀이 위와 같은 규칙으로 점의 개수가 늘어납니다. n이 2일 경우, 위와 같이 위 아래가 2씩 채워지면 끝이 납니다. 위 패턴을 잘 보면..

[구현/수학] 백준 18883 N M 찍기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18883번: N M 찍기 총 N개의 줄을 출력해야 한다. 각 줄에는 M개의 정수를 공백 한 칸으로 구분해 출력해야 한다. 1번 줄에는 1부터 M까지, 2번 줄에는 M+1부터 2×M까지, ..., N번 줄에는 (N-1)×M+1부터 N×M까지 출력해야 www.acmicpc.net 2. 문제 풀이 1부터 N*M까지 출력합니다. 한 줄에 M개씩 N개의 줄에 나열됩니다. 3. 코드 N, M = map(int, input().split()) for i in range(N): for j in range(M): if j == M-1: print(M*i+j+1, end="") else: print(M*i+j+1, end=" ") print() 이중 for문을 이용해서 N..

[구현/수학] 백준 15780 멀티랩 충분하니? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15780번: 멀티탭 충분하니? 오늘은 NAVER D2 캠퍼스에서 CTP 스터디 하는날!!! 스터디 장소가 인하대학교 강의실에서 NAVER D2 캠퍼스로 바뀌었기 때문에 멀티탭 부장 준호는 스터디 전에 미리 멀티탭을 셋팅 해야 한다. CTP는 모 www.acmicpc.net 2. 문제 풀이 학생 수 N명과 멀티탭 수 K가 주어집니다. 그리고 각 멀티탭 구의 수 A[i]가 주어집니다. 멀티탭을 연속해서 맞닿아 꽂지 않게 사용할 경우, 모든 사람이 멀티탭에 코드를 꽂을 수 있는지 판별합니다. 3. 코드 N, K = map(int, input().split()) A = list(map(int, input().split())) multitab = 0 for i i..

[구현/수학] 백준 23803 골뱅이 찍기 - ㄴ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23803번: 골뱅이 찍기 - ㄴ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㄴ자 모양의 골뱅이가 들어있다. ㄴ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사 www.acmicpc.net 2. 문제 풀이 n크기의 ㄴ 모양을 출력하는 문제입니다. 3. 코드 N = int(input()) # 세로 for i in range(N*4): print('@'*N) # 가로 for i in range(N): print('@'*5*N)

[구현/수학] 백준 13610 Volta - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13610번: Volta No automobilismo é bastante comum que o líder de uma prova, em determinado momento, ultrapasse o último colocado. O líder, neste momento, está uma volta à frente do último colocado, que se torna, assim, um retardatário. Neste problema, dados os tem www.acmicpc.net 2. 문제 풀이 각각 한 바퀴를 도는 데에 필요한 시간이 주어집니다. 즉, 숫자가 작을수록 빠릅니다. 빠른 주자(X)가 언제 느린 주자(Y)를 추월하는지를 구해야 합..

[구현/수학] 백준 22380 割り勘 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 22380번: 割り勘 ひとつめのデータセットでは 1 人あたりの支払いは 100 円である.1 番目と 2 番目の参加者は 100 円を支払うことができるが,3 番目の参加者は 100 円を支払うことができないため,所持金であ www.acmicpc.net 2. 문제 풀이 참가비를 걷는 문제입니다. M/N보다 많은 돈을 갖고 있으면 그대로 내면 됩니다. 단, M/N보다 적은 돈을 가진 사람은 전부 내는 걸로 대체합니다. 3. 코드 while True: n, m = map(int, input().split()) if n == m == 0: break money = list(map(int, input().split())) pay = m//n res = 0 for i in money:..

[구현/문자열] 백준 20944 팰린드롬 척화비 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20944번: 팰린드롬 척화비 흥선이는 팰린드롬을 싫어한다. 어느 날 지구를 정복한 흥선이는 팰린드롬 척화비를 세워, 전 지구의 팰린드롬을 없애버렸다. 그리고 수미상관 순수비를 만들어 수미상관을 널리 퍼뜨렸다. 팰 www.acmicpc.net 2. 문제 풀이 길이가 n인 팰린드롬을 출력하는 문제입니다. 3. 코드 # 입력 n = int(input()) # 출력 print('a'*n) 앞뒤가 같은 문자열은 팰린드롬입니다.

[구현/수학] 백준 5524 입실 관리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5524번: 입실 관리 JOI회사에서는 방에 들어가기 위해 입실 기록을 입력할 때 알파벳으로 이름을 입력한다. 그런데, 컴퓨터에 오류가 나서 대문자 소문자가 섞여버려 입실 기록이 읽기 힘들어졌다. JOI회사의 입실 www.acmicpc.net 2. 문제 풀이 대문자를 모두 소문자로 변환하는 문제입니다. 3. 코드 # 입력 n = int(input()) for i in range(n): s = input() print(s.lower()) lower() 함수를 이용해서 소문자로 변환합니다.

[구현/수학] 백준 24266 알고리즘 수업 - 알고리즘의 수행 시간 5 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24266번: 알고리즘 수업 - 알고리즘의 수행 시간 5 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 2. 문제 풀이 MenOfPassion(A[], n) { sum

[구현/수학] 백준 23808 골뱅이 찍기 - ㅂ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23808번: 골뱅이 찍기 - ㅂ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㅂ자 모양의 골뱅이가 들어있다. ㅂ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사 www.acmicpc.net 2. 문제 풀이 골뱅이로 ㅂ 모양을 출력하는 문제입니다. 3. 코드 N = int(input()) for i in range(2*N): print('@'*N + ' '*N + '@'*N) for i in range(N): print('@'*(5*N)) for i in range(N): print('@'*N + ' '*N + '@'*N) for i in range(N): print('@'*(5*N)) ㅂ 모양을..

[Activity] SQL 개발자(SQLD) 리뷰/후기 [내부링크]

SQL 개발자(SQLD)를 취득한 노하우를 공유합니다. [ Contents ] 1. SQL 개발자(SQLD)란? SQLD는 데이터베이스와 데이터 모델링, SQL 쿼리를 평가하는 국가공인자격증입니다. 데이터베이스 과목을 수강하는 전공자나, 전산 관련 실무자들은 쉽게 취득하실 수 있습니다. 물론 비전공자들도 SQL만 배우면 취득 가능합니다. 응시 자격은 없으며, 합격 기준도 타 자격증과 동일하게 평균 60점만 넘으면 됩니다. 실기 없이, 필기 1번만 합격하면 바로 취득할 수 있습니다. 다만 응시료는 5만원으로 비싼 편입니다. 총 50문제를 1시간 30분 동안 풀어야 하며, 시간은 적당한 편입니다. 객관식 40문제와 단답형 10문제로 이루어져 있으며, 단답형에서는 주로 쿼리 결과나 DB 관련 개념을 물어봅니다..

[Activity] 데이터분석 준전문가(ADsP) 리뷰/후기 [내부링크]

데이터분석 준전문가(ADsP)를 취득한 노하우를 공유합니다. [ Contents ] 1. 데이터분석 준전문가(ADsP)란? 데이터분석 준전문가는 국가공인자격증으로, 데이터 분석 및 기획 직무 내용을 다루고 있습니다. 기사 시험과 달리, 응시자격이 없으므로 비전공자들도 많이 응시하는 시험입니다. 최근 빅데이터와 AI 분야가 떠오르면서 응시생이 늘고 있으며, 직무나 학과가 데이터 분야와 관련 있는 분들은 쉽게 취득하실 수 있습니다. 2. 공부 방법 실기 없이 '필기'만 합격하면 됩니다. 과락(40점) 없이 총점 60점 이상이면 합격이니, 커트라인도 넉넉한 편입니다. 특히 ADsP는 2014년부터 시행되었고 지금까지 30회가 넘는 기출이 쌓였습니다. 즉, 문제은행 식으로 시험이 출제되니 기출만 공략하면 됩니다..

[Activity] 컴퓨터활용능력(컴활) 1급 리뷰/후기 [내부링크]

컴퓨터활용능력 1급을 취득하는 노하우를 공유합니다. [ Contents ] 1. 컴퓨터 활용능력이란? 컴퓨터 활용능력은 '국가기술자격'으로, 대한상공회의소에서 주관하고 있습니다. 주로 '컴활'이라고 줄여서 이야기하며, 많은 수험생과 더불어 낮은 합격률을 자랑하는 상공회의소의 대표 자격증입니다. 공공계열에서 취업 및 승진에 가산점을 주기 때문에, 주로 공시생들이 준비하며 타 계열은 솔직히 큰 효용을 보긴 어렵습니다. 따라서 컴활 무용론이 퍼지고 있으나, 그래도 없는 것보다는 있는 게 낫겠죠.....? 컴퓨터 활용능력은 엑셀과 엑세스 2과목으로 이루어져 있으며, 필기와 실기 모두 합격해야 취득할 수 있습니다. 2. 필기 공부법 컴퓨터활용능력 1급 필기 기출문제 전자문제집 CBT - 최강 자격증 기출문제 전자..

[구현/수학] 백준 16546 Missing Runners - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16546번: Missing Runners The first line of input contains the integer N (1 ≤ N ≤ 215). The next line contains N −1 distinct integers in the range from 1 to N, representing the numbers of runners who have crossed the finish line. www.acmicpc.net 2. 문제 풀이 결승전을 통과한 주자의 번호가 주어집니다. 이를 통해 결승전을 통과하지 못한 주자를 찾아냅니다. 3. 코드 N = int(input()) numlist = list(map(int, input().split()))..

[구현/수학] 백준 10180 Ship Selection - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10180번: Ship Selection Input begins with a line with one integer T (1 ≤ T ≤ 50) denoting the number of test cases. Each test case begins with a line with two space-separated integers N and D, where N (1 ≤ N ≤ 100) denotes the number of ships in the docking bay and D (1 www.acmicpc.net 2. 문제 풀이 (거리 D / 속력 V) * 연료 소비량 c

[구현/수학] 백준 18398 HOMWRK - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18398번: HOMWRK In one of the beautiful cities of Afghanistan two sisters are going to program a simple game to help them solve their mathematics homework. Their homework asks them to calculate the sum and multiplication of two numbers. Your task is to help them to build www.acmicpc.net 2. 문제 풀이 두 수의 합과 곱을 출력합니다. 3. 코드 T = int(input()) for i in range(T): N = int(input()..

[구현/수학] 백준 23811 골뱅이 찍기 - ㅌ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23811번: 골뱅이 찍기 - ㅌ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㅌ자 모양의 골뱅이가 들어있다. ㅌ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사 www.acmicpc.net 2. 문제 풀이 ㅌ자 모양의 골뱅이를 찍는 문제입니다. 3. 코드 N = int(input()) # 가로 for i in range(N): print('@'*(5*N)) # 세로 for i in range(N): print('@'*N) # 가로 for i in range(N): print('@'*(5*N)) # 세로 for i in range(N): print('@'*N) # 가로 for i in range(..

[구현/수학] 백준 13240 Chessboard - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13240번: Chessboard A single line with two integers N and M separated by spaces. The number N will represent the number of rows and M the number of columns. N and M will be between 1 and 10. www.acmicpc.net 2. 문제 풀이 N * M 크기의 체스판을 출력하는 문제입니다. 3. 코드 # 입력 N, M = map(int, input().split()) # 출력 for i in range(N): for j in range(M): if (i+j) % 2 == 0: print('*', end='') else..

[구현/수학] 백준 4714 Lunacy - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4714번: Lunacy After several months struggling with a diet, Jack has become obsessed with the idea of weighing less. In an odd way, he finds it very comforting to think that, if he had simply had the luck to be born on a different planet, his weight could be considerably www.acmicpc.net 2. 문제 풀이 0.167를 곱해서, 달에서의 중력을 구하는 문제입니다. 3. 코드 while True: x = float(input()) if x <..

[구현/수학] 백준 14761 FizzBuzz - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14761번: FizzBuzz Print integers from 1 to N in order, each on its own line, replacing the ones divisible by X with Fizz, the ones divisible by Y with Buzz and ones divisible by both X and Y with FizzBuzz. www.acmicpc.net 2. 문제 풀이 Fizz: X로 나누어지는 수 Buzz: Y로 나누어지는 수 FizzBuzz: X와 Y로 나누어지는 수 3. 코드 # 입력 X, Y, N = map(int, input().split()) # 출력 for i in range(1, N+1): if i % ..

[구현/수학] 백준 14682 Shifty Sum - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14682번: Shifty Sum Suppose we have a number like 12. Let’s define shifting a number to mean adding a zero at the end. For example, if we shift that number once, we get the number 120. If we shift the number again we get the number 1200. We can shift the number as many time www.acmicpc.net 2. 문제 풀이 N번만큼 X를 10^i 만큼 곱해서 더합니다. 3. 코드 # 입력 N = int(input()) K = int(input()) #..

[구현/수학] 백준 11874 ZAMKA - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11874번: ZAMKA The impossible has happened. Bear G. has fallen into his own trap. Lured by a delicious box of Domaćica, without even thinking, he rushed and fell into his trap. In order to get out of the trap, he must solve the following task with your help. You are giv www.acmicpc.net 2. 문제 풀이 L부터 D까지 자릿수의 합을 하나하나 계산합니다. 그 중 최솟값과 최댓값을 출력합니다. 3. 코드 # 입력 L = int(input())..

[구현/수학] 백준 13073 Sums - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13073번: Sums For each test case, print three space separated integers S1, S2, S3 in one line where S1 : the sum of first N positive integer, S2 : the sum of first N positive odd integer, S3 : the sum of first N positive even integer. www.acmicpc.net 2. 문제 풀이 S1 : 처음 N개의 양의 정수의 합 S2 : 처음 N개의 양의 홀수 정수의 합 S3 : 처음 N개의 양의 짝수의 합 위 3가지의 합을 구하는 문제입니다. 3. 코드 t = int(input()) fo..

[수학/브루트포스] 백준 17618 신기한 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17618번: 신기한 수 평소에 수에 대한 관심이 많은 아이인 민철이는 오늘도 노트에 연필로 수를 더하거나 빼거나 곱하거나 나눠보면서 시간을 보내고 있다. 그러다가 18이라는 수는 신기한 성질을 가진다는 것을 알 www.acmicpc.net 2. 문제 풀이 N이하인 수 중에서, 각 자릿수를 더한 수가 '약수'인 숫자를 찾는 문제입니다. 3. 코드 n = int(input()) res = 0 for number in range(1, n+1): tmp = str(number) digit_sum = 0 for i in tmp: digit_sum += int(i) if number % digit_sum == 0: res += 1 print(res) 1부터 N까지 ..

[구현/수학] 백준 20410 추첨상 사수 대작전! (Easy) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20410번: 추첨상 사수 대작전! (Easy) 한 줄에 걸쳐 준표가 좋아하는 소수 m, 참가자들이 정한 Seed, 시연으로 공개된 X1, X2 이 주어진다. 항상 가능한 상황만 입력으로 주어진다. www.acmicpc.net 2. 문제 풀이 X1 = (a × Seed + c) % m X2 = (a × X1 + c) % m 입력으로 m, seed, x1, x2가 주어집니다. 위 두 방정식을 통해, a와 c의 값을 찾아내야 합니다. 3. 코드 m, seed, x1, x2 = map(int, input().split()) for a in range(m): for c in range(m): if x1 == (a * seed + c) % m and x2 == (a..

[구현] 백준 23806 골뱅이 찍기 - ㅁ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23806번: 골뱅이 찍기 - ㅁ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 ㅁ자 모양의 골뱅이가 들어있다. ㅁ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사 www.acmicpc.net 2. 문제 풀이 ㅁ 모양의 골뱅이를 찍는 문제입니다. 3. 코드 N = int(input()) for _ in range(N): print('@'*(5*N)) for _ in range(N*3): print('@'*N + ' '*(N*3) + '@'*N) for _ in range(N): print('@'*(5*N))

[구현] 백준 24263 알고리즘 수업 - 알고리즘의 수행 시간 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 2. 문제 풀이 MenOfPassion(A[], n) { sum

[수학/구현] 백준 13484 Tarifa - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13484번: Tarifa The first line of input contains the integer X (1 ≤ X ≤ 100). The second line of input contains the integer N (1 ≤ N ≤ 100). Each of the following N lines contains an integer Pi (0 ≤ Pi ≤ 10 000), the number of megabytes spent in each www.acmicpc.net 2. 문제 풀이 번역문을 독해하는 게 어려운 문제입니다. 1개월당 X 데이터가 주어지며, N+1개월 동안 X*(N+1) 데이터를 사용할 수 있습니다. N개월 동안 쓴 데이터를 빼고 남은..

[구현/수학] 백준 7595 Triangles - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7595번: Triangles Each line of input contains a single positive integer, n, 1

[구현/수학] 백준 14215 세 막대 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 2. 문제 풀이 세 막대의 길이가 주어집니다. 삼각형의 성립조건에 맞춰, 가장 둘레의 길이가 큰 삼각형을 만들어야 합니다. 가장 긴 변의 길이 < 두 짧은 변의 길이의 합 삼각형이 되려면, 두 짧은 변의 길이의 합이 긴 변의 길이보다 커야 합니다. 따라서 가장 긴 변의 길이를 1씩 줄여가며, 위 조건을 만족하는지 판별합니다. 3. 코드 a, b, c = map(int, input().split()) long_side = max(a, b, c) short_sides = sum((a, b, c)) - long_side while long..

[수학/브루트포스] 백준 13225 Divisors - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13225번: Divisors For each integer n, print a line with the number n itself, a space and the number of divisors. www.acmicpc.net 2. 문제 풀이 정수 N이 주어집니다. 정수 N의 약수의 개수를 구합니다. 3. 코드 n = int(input()) for _ in range(n): c = int(input()) res = 0 for i in range(1, c+1): if c % i == 0: res += 1 print(c, res) 단순히 1부터 n까지 나눠지는 수를 찾아 횟수를 셉니다.

[구현/수학] 백준 23794 골뱅이 찍기(정사각형) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23794번: 골뱅이 찍기 - 정사각형 첫째 줄부터 $N+2$번째 줄까지 차례대로 골뱅이를 출력한다. www.acmicpc.net 2. 문제 풀이 N크기로 ㅁ 모양으로 골뱅이를 출력합니다. 3. 코드 N = int(input()) print('@'*(N+2)) for _ in range(N): print('@'+' '*N+'@') print('@'*(N+2)) N은 모서리 @를 제외한 가로 세로의 길이입니다. 따라서 N+2개만큼 가로 세로의 @를 출력해야 합니다.

[구현/수학] 백준 4084 Viva la Diferencia - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4084번: Viva la Diferencia 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, a, b, c, d가 순서대로 주어진다. 입력의 마지막 줄에는 0이 4개 주어진다. (1 ≤ a,b,c,d ≤ 2,000,000,000) www.acmicpc.net 2. 문제 풀이 |a-b| |b-c| |c-d| |d-a| a, b, c, d가 모두 같아질 때까지, 위와 같은 과정을 반복합니다. 3. 코드 import sys input = sys.stdin.readline while True: a, b, c, d = map(int, input().split()) if a == b == c == d == 0: brea..

[구현/수학] 백준 15232 Rectangles - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15232번: Rectangles Read two integer numbers R and C from the standard input and then print R lines with C asterisks (*) each. Example (R=3, C=5): ***** ***** ***** Example (R=2, C=10): ********** ********** www.acmicpc.net 2. 문제 풀이 직사각형의 가로, 세로 길이가 주어집니다. 해당 직사각형의 모양으로 *을 출력합니다. 3. 코드 R = int(input()) C = int(input()) for i in range(R): print('*'*C) 파이썬은 문자열과 정수를 연산할 수..

[구현/수학] 백준 17174 전체 계산 횟수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17174번: 전체 계산 횟수 첫 번째 줄에 환전한 금액 N과 묶음의 크기 M이 주어진다. (2 ≤ N ≤ 100,000, 2 ≤ M ≤ N) www.acmicpc.net 2. 문제 풀이 묶음 개수가 M보다 작아질 때까지, 계속 M으로 묶는 문제입니다. 총 묶은 횟수를 구해야 합니다. 3. 코드 # 입력 N, M = map(int, input().split()) res = N while N//M != 0: N //= M res += N print(res)

[수학/브루트포스] 백준 4619 루트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4619번: 루트 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, B와 N이 주어진다. (1 ≤ B ≤ 1,000,000, 1 ≤ N ≤ 9) 입력의 마지막 줄에는 0이 2개 주어진다. www.acmicpc.net 2. 문제 풀이 B와 가장 가까운 A^N을 찾는 문제입니다. 3. 코드 import sys input = sys.stdin.readline while True: b, n = map(int, input().split()) if b == n == 0: break i = 0 while i**n < b: i += 1 print(i if i**n-b < b-(i-1)**n else i-1) A를 1씩 올리면서, A..

[구현/수학] 백준 25304 영수증 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 2. 문제 풀이 물건의 개수와 가격, 총 청구 금액이 주어집니다. 영수증의 계산 결과가 맞는지 검산해야 합니다. 3. 코드 import sys input = sys.stdin.readline X = int(input()) N = int(input()) res = 0 for _ in range(N): a, b = map(int, input().split()) res += a*b print("Yes") if res == X el..

[구현/수학] 백준 11024 더하기 4 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11024번: 더하기 4 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 www.acmicpc.net 2. 문제 풀이 N개의 자연수 합을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline N = int(input()) for _ in range(N): numlist = list(map(int, input().split())) print(sum(numlist))

[정렬/탐색] 백준 25305 커트라인 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 2. 문제 풀이 응시자 수 N명의 점수와 수상자 수 K명이 주어집니다. 상을 받는 커트라인 점수는 몇 점인지 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) score = list(map(int, input().split())) score.sort() print(score[n-k]) 단순 정렬 문제입니다. 오름차순으로 정렬한 뒤, n-k+1번째 학생의 점수를 출력합니다.

[구현/정렬] 백준 17263 Sort 마스터 배지훈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17263번: Sort 마스터 배지훈 지훈이는 Sort 마스터다. 그래서 어떠한 N개의 원소를 가진 배열이 들어오더라도 암산으로 오름차순 정렬을 할 수 있다고 한다. 의심 많은 보성이는 지훈이를 테스트해 보기로 마음먹었다. 하지 www.acmicpc.net 2. 문제 풀이 N개의 정수 중 가장 큰 수를 출력합니다. 3. 코드 # 입력 N = input() A = list(map(int, input().split())) A.sort() print(A[-1]) 단순 정렬로도 풀 수 있고, 그냥 max(A)하더라도 구할 수 있습니다. 굳이 최대힙 같은 어려운 알고리즘을 사용하지 않아도 됩니다.

[구현/수학] 백준 9713 Sum of Odd Sequence - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9713번: Sum of Odd Sequence First line of the input contains T, the number of test cases. Each test case contains a single integer N. N is between 1 and 100. www.acmicpc.net 2. 문제 풀이 N개의 정수가 주어집니다. 그 중 홀수만을 더한 값을 구해야 합니다. 3. 코드 # 입력 T = int(input()) for _ in range(T): N = int(input()) res = 0 for i in range(N): if i % 2 == 1: res += i print(res+N)

[구현] 백준 17010 Time to Decompress - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17010번: Time to Decompress The output should be L lines long. Each line should contain the decoding of the corresponding line of the input. Specifically, if line i+1 of the input contained N x, then line i of the output should contain just the character x printed N times. www.acmicpc.net 2. 문제 풀이 문자열과 문자열을 반복 출력할 횟수가 주어집니다. 반복 횟수만큼 문자열을 출력해야 합니다. 3. 코드 # 입력 T = int(inp..

[구현/수학] 백준 20053 최소, 최대 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20053번: 최소, 최대 2 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 N개의 정수가 주어집니다. 이 때, 최솟값과 최댓값을 구해야 합니다. 3. 코드 # 입력 T = int(input()) for _ in range(T): N = int(input()) numlist = list(map(int, input().split())) print(min(numlist), max(numlist))

[구현/수학] 백준 7891 Can you add this? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7891번: Can you add this? The input contains several test cases. The first line contains and integer t (t ≤ 100) denoting the number of test cases. Then t tests follow, each of them consisiting of two space separated integers x and y (−109 ≤ x, y ≤ 109). www.acmicpc.net 2. 문제 풀이 두 수가 주어집니다. 그 수를 모두 더한 값을 출력합니다. 3. 코드 # 입력 Q = int(input()) for _ in range(Q): a, b = map(i..

[구현/수학] 백준 11648 지속 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11648번: 지속 키파는 곱하기를 좋아한다. 그래서 키파는 수를 보면 각 자리 숫자를 모두 곱해서 하나의 수를 만든다. 키파는 기쁘다. 키파는 이 작업을 계속해서 반복한다. 그런데 수가 한 자리가 되었다. 키 www.acmicpc.net 2. 문제 풀이 한 자리 수가 될 때까지, 각 자릿수를 모두 곱하는 과정을 반복합니다. 3. 코드 # 입력 n = input() cnt = 0 while len(n) > 1: res = 1 for i in n: res *= int(i) n = str(res) cnt += 1 print(cnt) 파이썬은 각 자릿수를 계산함에 있어 이점이 있습니다. Str으로 숫자를 받으면, 각 자릿수를 계산하기 쉽습니다. 각 자릿수를 곱하..

[구현/수학] 백준 10599 페르시아의 왕들 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10599번: 페르시아의 왕들 테스트 케이스는 여러줄에 걸쳐 입력된다. 각 테스트 케이스는 4개의 정수 a, b, c, d (-5000 ≤ a ≤ b ≤ c ≤ d ≤ 2000)로 이뤄진다. [a, b]는 출생일의 범위, [c, d]는 사망일의 범위이다. a, b, c, d의 입력 www.acmicpc.net 2. 문제 풀이 왕은 a 또는 b년도에 태어나서, c 또는 d 년도에 사망합니다. 이 때, 가능한 최소 수명과 최대 수명을 구합니다. a < b 이고 c < d일 때, 최소 수명: c - b 최대 수명: d - a 간단한 수학 문제입니다. 3. 코드 # 입력 while True: a, b, c, d = map(int, input().split()) i..

[구현/수학] 백준 11134 쿠키애호가 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11134번: 쿠키애호가 철수는 쿠키를 세상에서 제일 좋아한다. 쿠키가 있는 곳이라면 철수도 반드시 있다고 할 정도이다. 철수는 날마다 자신이 가지고 있는 쿠키 중 C개를 먹는다. C개 미만의 쿠키가 남아 있다면 전 www.acmicpc.net 2. 문제 풀이 날마다 C개의 쿠키를 먹는다면, 전체 N개의 쿠키를 몇 일동안 먹는지를 구하는 문제입니다. 3. 코드 # 입력 T = int(input()) for _ in range(T): N, C = map(int, input().split()) if N % C == 0: print(N//C) else: print(N//C+1) 단순 수학문제입니다. N개를 C개로 나눈 몫을 구하고, 나머지가 있다면 하루를 더합니다.

[구현/수학] 백준 14909 양수 개수 세기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14909번: 양수 개수 세기 첫째 줄에 최대 1,000,000개의 정수가 주어진다. 입력으로 주어지는 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 주어진 N개의 정수 중에서 양의 정수를 세는 문제입니다. 3. 코드 # 입력 numlist = list(map(int, input().split())) res = 0 for i in numlist: if i > 0: res += 1 print(res) 단순히 부호만 판별해서, 0보다 큰 정수의 개수를 셉니다.

[수학/브루트포스] 백준 10419 지각 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10419번: 지각 창영이가 궁금한 경우의 수 T(1 ≤ T ≤ 100)가 첫 번째 줄에 주어지고, 이어서 T 개의 줄에 수업시간 d(1 ≤ d ≤ 10,000, d는 정수)가 차례대로 주어진다. www.acmicpc.net 2. 문제 풀이 s = t^2 교수님이 지각한 시간(t)의 제곱만큼 수업을 일찍 끝내주십니다. 수업 시간(d)이 주어졌을 때, 교수님이 최대로 늦을 수 있는 시간은 몇 분인지 구해야 합니다. d >= t + t^2 지각한 시간도 수업시간에 포함되므로, 위 식을 만족해야 합니다. t를 구하기 위해 2차 부등식을 풀 수도 있으나, 그보다는 브루트포스 방법으로 접근하는 것이 좋습니다. 3. 코드 # 입력 T = int(input()) for..

[수학/브루트포스] 백준 6131 완전 제곱수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6131번: 완전 제곱수 상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다. 상근이는 선영이에게 다음과 같 www.acmicpc.net 2. 문제 풀이 A^2 = B^2 + N 위 조건을 만족하는 A와 B 쌍의 개수를 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의..

[Activity] SW마에스트로 기획심사 리뷰/후기 [내부링크]

[ Contents ] 1. SW마에스트로 기획 심사 SW마에스트로는 예비 과정(4~5월)과 본 과정(6~11월)으로 나누어서 진행되며, 예비 과정에서 팀원과 멘토를 구하고 프로젝트 기획을 합니다. 본 과정에서는 팀 멘토님들의 도움을 받아 프로젝트 기획을 더 발전시키고, 실제 결과물을 완성시킵니다. 프로젝트 기획 심의는 본 과정의 시작을 알리는 첫 평가이며, 6월 중순에 진행됩니다. 점수를 평가하진 않지만 1차에 통과하지 못하면 2차 심사에도 응해야 하며, 2차 심사도 떨어지면 경고 누적과 함께 해당 월 장학금(100만 원)을 받지 못합니다. 따라서 기획심의는 '통과'할 정도의 정성을 들여, 빠르게 마무리하는 게 좋습니다. 어차피 평가 점수에 들어가지도 않으며, 기말고사 기간에 진행되므로 많은 시간을 쏟..

[Activity] SW 마에스트로 웰컴 키트(Welcome Kit) 후기 [내부링크]

SW마에스트로 발대식에 앞서, 웰컴 키트가 도착했습니다. 원래 코로나 이전에는 2박 3일 간 OT(오리엔테이션)을 진행하며 팀도 구성하고, 멘토님도 구했다고 합니다. 웰컴 키트는 OT에서 사용할 물품이었죠. 하지만 코로나로 인해 간단히 발대식만 진행하므로, 웰컴 키트가 자택으로 배송되었습니다. SW마에스트로는 과학기술통신부 산하의 SW인재 육성 프로그램입니다. 이미 4~5월의 예비과정동안 팀 매칭(팀원, 멘토)부터 프로젝트 기획까지 모두 마쳤지만, 발대식은 본 과정의 시작인 6월에 진행되었습니다. 6월 ~ 11월까지 본격적인 팀 프로젝트가 이루어지며, 이제부터 진짜 시작이라는 느낌이 듭니다... (그렇다고 하기에는 예비과정부터 너무 힘들었...) OT에 빠질 수 없는 연수복입니다. 개발자 느낌 물씬 나는..

[Activity] SW마에스트로 연수센터(씨앗방, 회의실, 수면실) 후기 [내부링크]

본 글은 13기 기준으로 작성되었습니다. 연수센터 내 공부할 수 있는 씨앗방과, 회의 및 멘토링을 진행하는 회의실, 그리고 휴게 및 수면실을 소개합니다. [ Contents ] 1. SW 마에스트로 연수센터 'SW마에스트로'는 과기부 산하의 SW 인재 육성 프로그램입니다. 국내 최고 교육 프로그램으로 꼽히며, 매년 우수한 연수생을 선발하여 훌륭한 멘토님들과 함께 프로젝트를 진행합니다. 2022.04.06 - [Activities] - [Activity] SW 마에스트로(소마, SOMA) 13기 지원후기 [Activity] SW 마에스트로(소마, SOMA) 13기 지원후기 SW 마에스트로 13기 지원 후기입니다. 소마에 대한 소개와, 지원절차, 후기까지 알아보겠습니다. [ Contents ] 1. SW마에..

[구현/수학] 백준 2863 이게 분수? - 자바(Java), 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2863번: 이게 분수? 첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다. www.acmicpc.net 2. 문제 풀이 네 정수 A, B, C, D가 주어집니다. 위 경우 A/C + B/D로 계산하며, 90도씩 오른쪽으로 회전하며 가장 큰 값을 찾습니다. 3. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { // 입력 Scanner sc = new Scanner(System.in); double a = sc.nextDouble(); double b = sc.nextDoubl..

[Java] 출력형식, 형식 문자열으로 출력하기: System.out.printf() [내부링크]

C/C++과 동일하게, 출력 형식을 이용해서 문자열을 출력하는 방법을 알아보겠습니다. [ Contents ] 1. System.out.printf() System.out.printf("형식 문자열", 값); printf() 메서드는 변숫값의 출력 형식을 지정할 수 있습니다. 출력 형식은 숫자의 자릿수를 제한할 때 사용하며, 빈 자릿수는 0으로 채울 수도 있습니다. double weight = 72.22; double height = 175.2; System.out.printf("weight: %.2f kg, height: %.2f cm", weight, height); 위 코드는 소수점 아래 2자리로만 제한해서 값을 출력한 예제입니다. 2. 출력 형식 / 형식 문자열 출력 형식은 '자릿수'와 '빈 자릿수..

[Java] 자바 출력 메서드, 콘솔창에 문자열 출력하기 [내부링크]

[Java] 이클립스 환경설정, 프로젝트 및 클래스 생성 방법 (feat 다크모드) 2022.01.20 - [PL (Programming Language)/Java] - [Java] 자바 이클립스 설치/다운로드 방법 (Eclipse IDE, 컴파일러) [Java] 자바 이클립스 설치/다운로드 방법 (Eclipse IDE, 컴파일러) [Java] JDK(자바개발도.. star7sss.tistory.com 지금까지 Java Programming을 하기위한 모든 작업을 마쳤습니다. 이번 시간에는 간단하게 화면에 문자를 출력하는 예제를 다뤄보겠습니다. [ Contents ] 0. 기본 틀 package practice; public class Test { public static void main(String[..

[구현/수학] 백준 4493 가위 바위 보? - 자바(Java) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4493번: 가위 바위 보? 첫째 줄에는 테스트 케이스의 개수 t(0 < t < 1000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 가위 바위 보를 한 횟수 n(0 < n < 100)이 주어진다. 다음 n개의 줄에는 R, P, S가 공백으로 구분되어 주어 www.acmicpc.net 2. 문제 풀이 두 플레이어의 가위 바위 보 입력이 주어집니다. 가위바위보 결과를 출력해야 합니다. 3. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); fo..

[수학/브루트포스] 백준 2018 연세대학교 프로그래밍 경진대회 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15667번: 2018 연세대학교 프로그래밍 경진대회 2015, 2016, 2017년에 이어 올해도 연세대학교 컴퓨터과학과 프로그래밍 경진대회가 열린다. 도현이는 4년 연속 교내대회가 개최된다는 것에 감격하여, 사비를 털 각오로 화려한 개막식을 준비했다. www.acmicpc.net 2. 문제 풀이 터지는 불꽃의 개수: 1 + K + K^2 위와 같은 규칙으로 터지는 불꽃이 있습니다. 총 터진 불꽃의 개수(N)를 통해 K를 추정해야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] ..

[구현/수학] 백준 14920 3n+1 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14920번: 3n+1 수열 다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다. www.acmicpc.net 2. 문제 풀이 C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 다음과 같은 규칙을 가진 수열이 있습니다. 입력으로 C(1)이 주어지며, C(n) = 1이 되는 n을 찾아야 합니다. 3. 코드 # 입력 c = int(input()) # C(n)이 1이 되면 break for n in range(1, 100001): ..

[구현/수학] 백준 10474 분수좋아해? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10474번: 분수좋아해? 당신은 학생들의 기초수학 학습을 돕는 소프트웨어를 개발하는 팀의 개발자이다. 당신은 가분수를 대분수(?)로 출력하는 부분을 개발해야 한다. 진분수는 분자가 분모보다 작은 분수이다; 대분 www.acmicpc.net 2. 문제 풀이 가분수를 대분수로 바꾸는 문제입니다. 3. 코드 import sys input = sys.stdin.readline while True: a, b = map(int, input().split()) if a == b == 0: break print(a//b, a%b, '/', b)

[구현/수학] 백준 10409 서버 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10409번: 서버 당신은 FCFS(First-Come, First-Served)의 규칙에 따라 요청된 일을 처리하는 서버를 담당하게 되었다. 매일, 당신은 일을 처리하기 위해 최대 T분 동안 서버에 시간을 할당할 수 있다. 당신은 오늘 주어 www.acmicpc.net 2. 문제 풀이 순서대로 처리할 수 있는 일의 개수를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n, T = map(int, input().split()) task = list(map(int, input().split())) # 처리하는 일의 개수 cnt = 0 for i in task: if i

[Project] STRC 러닝 데이터베이스: 러닝크루 기록 관리 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 데이터베이스 설계 일시: 2019.10. ~ 2019.11. 스택: Oracle DB 주제: 러닝 동아리원의 정보를 관리하기 위한 데이터베이스 설계 2. 프로젝트 소개 STRC는 매주 2회 정기 러닝을 하는 서울과학기술대학교 중앙동아리입니다. STRC 동아리원들의 신상정보와 러닝정보를 체계적으로 관리하고 운용하기 위해 데이터베이스를 만들기로 생각했습니다. 프로젝트 목적 - 동아리원들의 신상정보를 체계적으로 관리 : 매학기 신규 지원자가 150명이 넘는 중앙동아리입니다. 다수의 신상정보를 체계적으로 관리하기 위한 데이터베이스를 설계해야 합니다. - 동아리원들의 러닝정보를 체계적으로 관리 : 타 대학 러닝 동아리와 연합 활동이 많고, 각종 마라톤 대회나 행..

[구현/수학] 백준 5523 경기 결과 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5523번: 경기 결과 A와 B가 게임을 한다. 게임은 N번의 라운드로 이루어져 있다. 각 라운드에서는, 더 많은 점수를 얻은 사람이 그 라운드의 승자가 된다. 즉, A의 점수가 B의 점수보다 크면 i번째 라운드는 A의 승리 www.acmicpc.net 2. 문제 풀이 라운드별 스코어가 주어집니다. 총 경기 결과를 출력해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) score_A, score_B = 0, 0 for _ in range(n): a, b = map(int, input().split()) if a > b: score_A += 1 elif a < b: score_B..

[구현/수학] 백준 5073 삼각형과 세 변 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 2. 문제 풀이 주어진 삼각형의 세 변의 길이를 토대로, 삼각형을 판별하는 문제입니다. Equilateral : 세 변의 길이가 모두 같은 경우 Isosceles : 두 변의 길이만 같은 경우 Scalene : 세 변의 길이가 모두 다른 경우 Invalid: 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 크거나 같은 경우 전형적인 if-else문으로, 순서만 잘 고려해서 작성하시면 됩니다. 3. 코드 import sys input = sys.stdin.readline while Tr..

[구현/문자열] 백준 5354 J박스 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5354번: J박스 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 박스의 크기가 주어진다. 박스의 크기는 10보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 가로 길이가 n인 J박스를 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 t = int(input()) for _ in range(t): n = int(input()) if n == 1: print('#') else: print('#'*n) for _ in range(n-2): print('#'+'J'*(n-2)+'#') print('#'*n) print() 별짓기와 마찬가지로, 위..

[수학/브루트포스] 백준 1837 암호제작 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1837번: 암호제작 원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 www.acmicpc.net 2. 문제 풀이 두 소수의 곱이 주어집니다. 만약 K보다 작은 소수의 곱으로 이루어졌다면, 좋은 암호가 아닙니다. 좋은 암호인지 판별합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + ..

[구현/수학] 백준 1408 24 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1408번: 24 도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는 www.acmicpc.net 2. 문제 풀이 단순히 시간을 계산하는 문제입니다. 하지만 의외로 시간 계산이 까다로울 수 있어요. 특히 시간은 24진법, 분과 초는 60진법이기 때문에 혼동이 올 수 있어요. 이럴 때는 시간과 분, 초를 따로 따로 계산하는 것보다 '초'로 환산해서 계산하는 게 더 간단할 수 있습니다. 3. 코드 # 입력 current_time = list(map(int, input().split(':'))) sta..

[그리디/Greedy] 백준 1758 알바생 강호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1758번: 알바생 강호 첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같 www.acmicpc.net 2. 문제 풀이 팁 + (1 - 순서) 최대한 많은 팁을 얻어야 합니다. 순서가 늦어질수록 팁이 낮아지며, 음수가 되면 아예 받지 못합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습..

[탐색/밸만포드] 백준 1865 웜홀 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 2. 문제 풀이 음수 가중치를 갖는 사이클(음수 사이클)이 있는 지 탐색하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 밸만 포드 알고리즘 def bf(start): dist = [10001] * (N + 1) dist[start] = 0 # 밸만포드 알고리즘 for i in range(N): for e in edge: start_node, next_..

[HTML] 웹페이지에 이미지, 사운드, 비디오 삽입하기 (img, audio, video) [내부링크]

웹페이지에 이미지, 사운드, 비디오를 삽입하는 멀티미디어 태그를 알아보겠습니다. [ Contents ] 1. 이미지 태그 img 태그는 이미지를 삽입하는 인라인 태그입니다. src 속성에 이미지 경로를 입력하고, width와 height 속성으로 가로 세로의 크기를 조정합니다. alt 속성값은 이미지가 나오지 않을 때, 대신 출력하는 문구입니다. 보통 이미지에 대한 설명을 alt 속성값으로 지정합니다. 이미지가 나오지 않는 이유는 대부분 '잘못된 경로' 때문이며, 이미지의 확장자(png, jpg 등)와 상대주소를 정확히 명시해야 합니다. 절대 주소로 해도 되지만, 폴더 계층구조가 바뀌면 모든 경로를 수정해야 하므로 대개 상대 주소로 적습니다. 루트 폴더는 html 파일이 있는 폴더이고, 보통 './src..

[자료구조/스택] 백준 1918 후위 표기식 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 2. 문제 풀이 중위 표기식으로 표현된 식을 '후위 표기식'으로 변환하는 문제입니다. 중위 표기식은 [피연산자 - 연산자 - 피연산자] 순으로 우리가 일상에서 사용하는 형식입니다. 반면 후위표기식은 [피연산자 - 피연산자 - 연산자] 순으로 식을 나열합니다. 앞에 피연산자가 2개 이상 쌓이고, 연산자를 만나면 그제서야 계산하는 방식입니다. 2022.02.10 - [Algorithm] - [Algorithm] 스..

[탐색/BFS] 백준 2206 벽 부수고 이동하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 2. 문제 풀이 최단 경로를 찾는 문제로, 임의로 벽 1개를 부술 수 있습니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ..

[HTML] 테이블 td, th 셀 수평 수직 정렬하기 (왼쪽, 오른쪽, 위, 아래, 가운데 정렬) [내부링크]

Table 태그에서 셀들을 수평 또는 수직으로 정렬하는 방법을 소개합니다. [ Contents ] 제목1제목2 내용1내용2 정렬을 알아보기 전에, 먼저 th와 td태그의 속성을 살펴봅시다. th 태그는 표 제목을 주로 나타내며, bold 체와 가운데 정렬이 기본값입니다. 반면 td 태그는 기본 셀로, 왼쪽 정렬되어 있습니다. 1. 셀 수평 정렬하기 Align 내용1내용2 align 속성을 사용하면 셀의 내용을 수평 정렬할 수 있습니다. 기본값인 왼쪽 정렬은 'left', 오른쪽 정렬은 'right', 그리고 가운데 정렬은 'center'입니다. 가운데 정렬을 가장 많이 사용하며, middle과 혼동하기 쉬우니 유의해야 합니다. 2. 셀 수직 정렬하기 Valign 내용1내용2 valign (vertical..

[HTML] Table 표에 시맨틱 태그 사용해서 구조화하기 (caption, thead, tbody) [내부링크]

지난 시간에 Table 태그로 표를 만들고 행열을 병합하는 과정을 배웠습니다. 이번에는 시맨틱 태그를 사용해서 표를 구조화하는 방법을 알아보겠습니다. 2022.04.27 - [Web] - [HTML] 시맨틱 태그, 웹페이지의 구조를 알려주는 주석 시맨틱 태그가 무엇이고, 왜 사용해야 하는지는 위 글에서 참조하실 수 있습니다. [ Contents ] 1. 표 제목 태그 표 제목 제목1제목2 내용1내용2 내용 caption 태그는 표의 제목을 달아줍니다. 표 제목 만약 표 제목을 아래에 달아주고 싶다면, css를 사용해서 bottom으로 변경합니다. 2. 제목 행 태그 표 제목 제목1제목2 내용1내용2 내용 thead 태그는 주로 1행의 th태그를 감싸줍니다. 표의 제목행을 나타내는 시맨틱 태그로, 별다른 ..

[HTML] 테이블 표, 행, 열 만들고 (<table>, <tr>, <th>, <td>) 행열 병합하기 [내부링크]

table 태그를 이용해서 표를 만드는 방법을 알아보겠습니다. [ Contents ] 1. 기본적인 테이블 구조 제목1제목2 내용1내용2 내용1내용2 은 'table row'의 약자로 표의 가로 행을 나타냅니다. 태그 안에 한 행에 담을 셀을 넣을 수 있습니다. 는 'table header'의 약자로 표의 제목 셀을 나타냅니다. 주로 1행에서 column 명을 나타낼 때 사용하며, td 태그와 달리 bold 처리와 가운데 정렬이 되어 있습니다. 는 'table data'의 약자로 셀을 나타냅니다. td 태그를 추가하면 하나의 셀이 추가되며, 열이 길어지는 효과도 있습니다. 제목1제목2 내용1내용2내용3 내용1 만약 행마다 셀의 개수가 다르다면, 가장 많은 셀을 가진 행을 기준으로 표의 열이 결정됩니다. ..

[구현/수학] 백준 25206 너의 평점은 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 2. 문제 풀이 한줄씩 과목명과 학점, 평점이 주어집니다. 이를 추합해서 전체 평점 평균을 구해야 합니다. (단, Pass 과목은 제외) 3. 코드 import sys input = sys.stdin.readline score = 0 num = 0 for _ in range(20): _, credit, grade = input().rstrip().split() if grade == 'A+': score += float(c..

[구현/문자열] 백준 25205 경로당펑크 2077 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25205번: 경로당펑크 2077 시은이는 종합설계 프로젝트로 오픈월드 액션 고스톱 게임 경로당펑크 2077을 개발하고 있다. 대사를 추가하던 중, 사용자 이름에 따라 '을' 또는 '를' 중 하나를 출력해야 함을 깨달았다. 예를 들 www.acmicpc.net 2. 문제 풀이 주어진 글자 뒤에 '을'이 붙는지 '를'이 붙는지를 판별하는 문제입니다. 즉, 받침 유무를 판별하는 문제입니다. 3. 코드 # 입력 n = input() s = input() last_character = s[-1] # 판별 if last_character in ['q', 'w', 'e', 'r', 't', 'a', 's', 'd', 'f', 'g', 'z', 'x', 'c', 'v'..

[탐색/DFS] 백준 1167 트리의 지름 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 2. 문제 풀이 트리의 양 끝단의 거리를 구하는 문제입니다. 즉, 트리에서 가장 먼 거리를 구해야 합니다. 2022.10.18 - [Algorithm] - [탐색/DFS] 백준 1967 트리의 지름 - 파이썬(Python) 백준 1967문제와 동일하며, 입력 형식만 다릅니다. 어느 한 노드에서 가장 먼 노드를 구하고, 해당 노드에서 가장 먼 노드를 구하면 양 끝 노드를 찾을 수 있습니다. 3. 코드..

[탐색/DFS] 백준 1967 트리의 지름 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 2. 문제 풀이 트리의 양 끝단의 거리를 재는 문제입니다. 즉, 가장 먼 노드 간의 거리를 재야 합니다. 2022.02.23 - [Algorithm] - [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 DFS는 인접노드가 없을 때까지, 끝까지 탐색하는 알고리즘입니다. 스택을 이용한 DFS 구현방법과 코드를..

[수학/브루트포스] 백준 3276 ICONS - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3276번: ICONS The first and only line of input file contains a natural number N (1 ≤ N ≤ 100), the number of pebbles to be arranged. Arrangement needs not to be regular in any sense – some places in a row may be empty. www.acmicpc.net 2. 문제 풀이 최소의 열과 행으로 조약돌을 채워넣는 문제입니다. 3. 코드 # 입력 n = int(input()) # 행과 열을 1개씩 늘림 row = 0 col = 0 while True: if row * col >= n: break row ..

[구현/브루트포스] 백준 17614 369 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17614번: 369 민수는 같은 반 친구들과 369게임을 하고 있다. 369게임은 여러 명이 원형으로 둘러 앉아 시작 위치의 사람이 1을 외치며 시작된다. 이후 시계방향으로 돌아가며 2, 3, 4와 같이 1씩 증가된 수가 자 www.acmicpc.net 2. 문제 풀이 1부터 n까지 369게임을 진행합니다. 3, 6, 9가 들어간 숫자만큼 박수를 쳐야하며, n까지 박수 친 횟수를 구해야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, ..

[수학/유클리드 호제법] 백준 5618 공약수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5618번: 공약수 첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다. www.acmicpc.net 2. 문제 풀이 자연수 n개가 주어질 때, 모든 공약수를 구하는 문제입니다. 2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm) 두 자연수 X..

[구현/수학] 백준 2991 사나운 개 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2991번: 사나운 개 창영 마을의 우체부, 우유배달원, 신문배달원은 상근이네 집에 가는 것을 매우 싫어한다. 그 이유는 상근이네 집에는 사나운 개 두 마리가 지키고 있기 때문이다. 하지만, 그들은 이 개의 행동 www.acmicpc.net 2. 문제 풀이 주기적으로 공격하고 휴식하는 2마리의 '사나운 개'가 있습니다. 우체부와 우유배달원, 신문배달원의 도착시간이 주어질 때, 사나운 개에게 물리는 횟수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 A, B, C, D = map(int, input().split()) # A C분 공격, B D분 휴식 P, M, N = map(int, input()...

[구현/수학] 백준 2547 사탕 선생 고창영 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2547번: 사탕 선생 고창영 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 빈 줄로 구분되어 있고, 다음과 같이 구성되어 있다. 테스트 케이스의 첫째 줄에 학생의 수 N이 주어진다. 다음 N개의 줄에는 www.acmicpc.net 2. 문제 풀이 학생들이 갖고 있는 사탕의 개수를 취합해서 N분의 1로 나누어야 합니다. 사탕의 개수가 딱 떨어지면 "YES", 나머지가 남는다면 "NO"를 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 T = int(input()) for _ in range(T): _ = input() # 공백 N = int(input()) candy = 0 for _..

[BruteForce/브루트포스] 백준 2061 좋은 암호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2061번: 좋은 암호 암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로 www.acmicpc.net 2. 문제 풀이 주어진 K의 약수 중 L보다 작은 게 있으면 좋은 암호가 아닙니다. 따라서 2부터 L까지 하나하나 K의 약수인지 판별하고, 약수가 있으면 BAD와 함께 약수를 출력하고 없으면 GOOD를 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 K, L = map(int, input().split()) # 인수판별 for i in range(2, L): if K %..

[구현/수학] 백준 1312 소수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 2. 문제 풀이 A/B로 나눈 결과에서 N번째 소수점을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 A, B, N = map(int, input().split()) # 출력 print(int((A/B)*10**N)%10) 단순하게 계산하면 런타임 에러가 뜹니다. 아무래도 floating point error가 나는 듯합니다. import sys in..

[그리디/Greedy] 백준 1105 팔 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1105번: 팔 첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 L과 R 사이에 있는 수 중에서 8이 가장 적게 들어간 수를 찾아, 8의 개수를 출력하는 문제입니다. 1) L과 R의 자릿수가 다른 경우: 0개 2) L과 R의 자릿수가 동일한 경우: 왼쪽 끝부터 동일한 자릿대 + 8인 개수를 파악 (단, 동일 숫자가 아니면 break) 1의 경우, 자릿수가 넘어갈 때 9, 99, 999와 같이 8이 0인 수가 나오므로 0개입니다. 2의 경우는, 고정된 8의 개수를 찾아야 합니다. 앞 자리가 동..

[브루트포스/수학] 백준 1145 거의 대부분의 배수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net 2. 문제 풀이 서로 다른 5개의 숫자가 주어집니다. 적어도 3개 이상의 수가 약수로 포함되는 최소의 수를 찾아야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운 접근법입니다. 모든 경..

[그리디/Greedy] 백준 14469 소가 길을 건너간 이유 3 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14469번: 소가 길을 건너간 이유 3 이웃 농장의 소가 길을 마구잡이로 건너는 것에 진절머리가 난 존은 극단의 결정을 내린다. 농장 둘레에 매우 큰 울타리를 짓는 것이다. 이렇게 하면 근처 농장 출신의 소가 들어올 일이 거의 없 www.acmicpc.net 2. 문제 풀이 소들의 도착시간, 검문에 필요한 시간이 주어집니다. 검문은 1마리씩 가능하며, 모든 소들을 입장시키는 데에 필요한 최소 시간을 구해야 합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안..

[그리디/Greedy] 백준 11034 캥거루 세마리 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11034번: 캥거루 세마리2 여러개의 테스트 케이스로 이루어져 있으며, 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100) www.acmicpc.net 2. 문제 풀이 캥거루 세 마리의 위치가 주어집니다. 바깥쪽에 있는 캥거루만, 둘 사이로 점프해서 들어갈 수 있습니다. 최대 점프를 몇 번 할 수 있는지를 구해야 합니다. 둘 사이가 넓은 쪽으로 점프해서, 한 칸씩 이동하면 됩니다. 굳이 중간으로 점프해서 간격을 줄일 필요가 없습니다. 3. 코드 import sys input = sys.stdin.readline while True: try: # 입력 A, B, C = map(int, input().split()) # ..

[동적계획법/DP] 백준 9251 LCS - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 2. 문제 풀이 ACAYKP CAPCAK 두 문자열의 LCS(Longest Common Subsequence, 최장 공통 부분 수열)을 구하는 문제입니다. 단순히 부분 문자열을 구하는 게 아니라, 떨어져 있어도 순서만 맞으면 공통 부분 수열이 될 수 있습니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래..

[탐색/자료구조] 백준 1991 트리 순회 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 2. 문제 풀이 주어진 트리를 '전위', '중위', '후위' 탐색하는 문제입니다. 전위 순회: 중간 -> 왼쪽 -> 오른쪽 중위 순회: 왼쪽 -> 중간 -> 오른쪽 후위 순회: 왼쪽 -> 오른쪽 -> 중간 자료구조 단골 시험문제죠. "주어진 트리를 전위/중위/후위 순회하시오." 전위와 중위는 탐색 경로는 같으나, '방문'하는 시점이 다릅니다. '전위'는 루트부터 찍고 왼쪽 오른쪽을 탐색하고, '중위'는 ..

[HTML] 블록, 인라인 시맨틱 태그: figure, details, summary, mark, time, meter, progress [내부링크]

시맨틱 태그는 크롤봇에게 단서를 알려주는 '주석'입니다. 문서의 구조(header, section, article, footer) 외에도 시맨틱 태그를 통해서 어떤 내용을 담고 있는지 알려줄 수 있습니다. 2022.04.27 - [Web] - [HTML] 시맨틱 태그, 웹페이지의 구조를 알려주는 주석 [HTML] 시맨틱 태그, 웹페이지의 구조를 알려주는 주석 웹 페이지의 구조를 잡을 때 사용하는 '시맨틱 태그'에 대해서 배워보겠습니다. [ Contents ] 1. 시맨틱 태그란? 시맨틱 태그(Semantic Tag): 문서의 구조와 의미를 전달하는 태그 시맨틱 태그는 웹 페 star7sss.tistory.com 시맨틱 태그에 대한 자세한 설명은 위 글을 참조해주세요. [ Contents ] 1. 블록 시..

[수학/기하학] 백준 1004 어린 왕자 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 2. 문제 풀이 출발지(x1, y1)부터 어린왕자가 도착지(x2, y2)까지 행성 여행을 합니다. N개의 행성들이 주어지며, 최대한 행성들을 지나치지 않고 가야 합니다. 중간에 아무리 가로막고 있어도, 우회해서 갈 수 있습니다. 따라서, 출발지와 도착지를 감싸는 행성계만 찾으면 됩니다. 3. 코드 import sys input = sys.stdin.readline # 입력 T = int(input()..

[우선순위큐/그리디] 백준 1715 카드 정렬하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 2. 문제 풀이 여러 개의 정렬된 카드 묶음(deck)을 하나로 합치는 데에 필요한 최소 비교횟수를 구해야 합니다. 2022.02.20 - [Algorithm] - [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련된 우선순위 큐도 ..

[Greedy/그리디] 백준 14487 욱제는 효도쟁이야!! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14487번: 욱제는 효도쟁이야!! 욱제는 KOI를 망친 기념으로 부모님과 함께 코드게이트 섬으로 여행을 떠났다. 코드게이트 섬에는 오징어로 유명한 준오마을(심술쟁이 해커 임준오 아님), 밥으로 유명한 재훈마을, 영중마을 등 www.acmicpc.net 2. 문제 풀이 원형으로 이어진 관광지 간 도로의 이동비용이 주어집니다. 이들을 순회하는 데에 필요한 최소 비용을 계산해야 합니다. 원형으로 순회할 때, 한 곳은 지나지 않아도 됩니다. 즉, 제일 비싼 교통비가 드는 경로만 제외하고 순회합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) # 마을의 수 town = list(map(in..

[Greedy/그리디] 백준 16435 스네이크버드 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net 2. 문제 풀이 스네이크버드의 길이와 과일들의 높이가 주어집니다. 스네이크버드가 과일을 1개 먹을 때마다 1씩 길이가 늘어나며, 자신의 길이보다 낮거나 같은 과일들은 먹을 수 있습니다. 스네이크버드가 최대로 자랄 수 있는 길이를 구해야 합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 ..

[구현/그리디] 백준 2828 사과 담기 게임 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M

[그리디/Greedy] 백준 9237 이장님 초대 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9237번: 이장님 초대 입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (1 ≤ ti ≤ 1,000,000) www.acmicpc.net 2. 문제 풀이 묘목이 다 자라는 데에 필요한 시간이 주어집니다. 하루에 1개만 심을 수 있으며, 모두 다 자라는 데에 필요한 최소의 일 수를 구해야 합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를..

[Greedy/그리디] 백준 1343 폴리오미노 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 2. 문제 풀이 .와 X로 이루어진 문자열이 주어집니다. XXXX는 AAAA로 XX는 BB로 바꾸며, X가 홀수로 남게 되면 -1를 출력합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보..

[동적계획법/DP] 백준 1660 캡틴 이다솜 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1660번: 캡틴 이다솜 캡틴 이다솜은 자신의 해적선에 적을 공격하기 위한 대포알을 많이 보관해 놓는다. 다솜이는 미적감각이 뛰어나기 때문에, 대포알은 반드시 사면체 모양으로 쌓아놓아야 한다고 생각한다. 사면 www.acmicpc.net 2. 문제 풀이 대포알을 반드시 사면체 모양으로 쌓아둘 때, 주어진 대포알로 만들 수 있는 최소의 '사면체'를 구하는 문제입니다. 2022.05.09 - [Algorithm] - [동적계획법/DP] 백준 12865 평범한 배낭 - 파이썬(Python) [동적계획법/DP] 백준 12865 평범한 배낭 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1..

[DP/동적계획법] 백준 1788 피보나치 수의 확장 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 문제 풀이 피보나치의 '음수 부분'을 구하는 문제입니다. 본래, 피보나치는 n = 2부터 시작하죠. n = 1일 때, f(1) = f(0) + f(-1) 이므로 f(-1) = f(1) - f(0) = 1 피보나치의 정의를 역이용하면, f(-1)도 구할 수 있습니다. 즉, 음수 부분을 구할 때에는 조금 식이 달라집니다. f(n-2) = f(n) - f(n-1) f(-1) = f(1..

[DP/동적계획법] 백준 14495 피보나치 비스무리한 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14495번: 피보나치 비스무리한 수열 피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... 자연수 n을 입력받아 n번째 피보 www.acmicpc.net 2. 문제 풀이 f(n) = f(n-1) + f(n-3) 피보나치 수열 f(n) = f(n-1) + f(n-2)와 달리, f(n-3)이 들어간 수열입니다. 피보나치 수열과 마찬가지로, 점화식만 수정해서 DP로 구현합니다. 3. 코드 # 입력 n = int(input()) # DP cache = [1, 1, 1] for i..

[DP/동적계획법] 백준 13699 점화식 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 2. 문제 풀이 t(0) = 1 t(n) = t(0)*t(n-1) + t(1)*t(n-2) + ... + t(n-1)*t(0) 위와 같은 점화식이 주어집니다. 점화식에 따라 t(n)을 구해야 합니다. 2022.02.12 - [Algorithm] - [Algorithm] ..

[DP/수학] 백준 16395 파스칼의 삼각형 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16395번: 파스칼의 삼각형 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행 www.acmicpc.net 2. 문제 풀이 파스칼의 삼각형으로 이항계수를 구하는 문제입니다. 3. 코드 from math import comb # 입력 n, k = map(int, input().split()) # 이항계수 print(comb(n-1, k-1))

[DP/동적계획법] 백준 15486 퇴사 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 문제 풀이 작업 스케줄이 주어집니다. 작업 시작일과 걸리는 일 수, 수익을 고려해서 최대 수익을 계산해야 합니다. 2022.05.30 - [Algorithm] - [DP/동적계획법] 백준 14501 퇴사 - 파이썬(Python) 퇴사 1과 달리, 일 수가 15가 아니라 1,500,000입니다. 상당히 크므로 그리디가 아닌 DP로만 풀 수 있습니다. 풀이 방법은 위 글에서 참조하실 ..

[구현/수학] 백준 11945 뜨거운 붕어빵 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11945번: 뜨거운 붕어빵 입력으로 주어지는 각 행을 반전시켜서 출력하면 됩니다. 입력의 1행 1열은 출력의 1행 M열로, 입력의 1행 2열은 출력의 1행 M-1열로 … 입력의 1행 M열은 출력의 1행 1열로 … 입력의 N행 M열은 출력 www.acmicpc.net 2. 문제 풀이 붕어빵의 모양이 입력으로 주어집니다. 좌우반전해서 출력해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 반대로 출력 N, M = map(int, input().split()) for _ in range(N): print(input().rstrip()[::-1])

[구현/수학] 백준 2981 검문 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 2. 문제 풀이 N개의 수가 주어집니다. 이를 M으로 나누었을 때, 나머지가 모두 같아야 합니다. M은 1보다 크며, 가능한 모든 M을 출력해야 합니다. 입력: A, B, C A = a*M + x B = b*M + x C = c*M + x 위와 같이 A, B, C가 주어질 때, M으로 나눈 나머지는 모두 같아야 합니다. 하지만 이렇게 봐선 M을 찾기가 어렵습니다. B - A = M(b-a) C - B = M(c-b) 나머지가 같으..

[구현/문자열] 백준 10174 팰린드롬 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10174번: 팰린드롬 팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다. 다음은 팰린드롬의 예시이다. Anna Harrah Arora Nat tan 9998999 123 www.acmicpc.net 2. 문제 풀이 문자열이 주어집니다. 해당 문자열이 팰린드롬(회문)인지 판별해야 합니다. 3. 코드 n = int(input()) for _ in range(n): string = input().lower() # 대소문자 구분하지 않음 # 팰린드롬 판별 if string == string[::-1]: print("Yes") else: print("No") 대소문자를 구분하지 않으므로, ..

[문자열/탐색] 백준 14425 문자열 집합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 2. 문제 풀이 문자열로 이루어진 집합 S가 주어집니다. 이후 주어지는 문자열 중 집합 S에 포함되는 개수를 출력합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) S = set() # 집합 S for _ in range(N): S.add(input().rstrip()) # 같은 단..

[구현/문자열] 백준 10823 더하기 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10823번: 더하기 2 문자열 S가 여러 줄에 걸쳐서 주어진다. S의 길이는 최대 10,000이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 입력의 끝이 정해지지 않은 문자열이 주어집니다. 문자열은 숫자와 쉼표로 이루어져 있으며, 숫자의 합을 구해야 합니다. 3. 코드 res = '' while True: try: tmp = input() res += tmp except EOFError: break numlist = list(map(int, res.split(","))) print(sum(numlist)) 입력이 더이상 주어지지 않으면 EOF Error를 호출합니다. 백준 온라인 저지에..

[구현/문자열] 백준 25083 새싹 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net 2. 문제 풀이 새싹 모양을 출력하는 문제입니다. 특수 기호가 많기 때문에, 기존의 C계열이나 java에선 이스케이프(escape, 탈출) 문자를 사용해야 합니다. 하지만 파이썬에서는 """ """를 이용해서 여러 줄의 문자열을 그대로 출력할 수 있습니다. 3. 코드 print(""" ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | """) """ """를 여러 줄로 주석을 남길 때 사용하는 걸로만 아시는 분들이 있는데, 사실은 '문자열'입니다. 변수 저장이나 출력에 사용하지 않아서, 주석처럼 된 것 뿐이죠.

[정렬/브루트포스] 백준 1015 수열 정렬 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net 2. 문제 풀이 길이가 N인 수열이 주어집니다. 수열 내에서의 대소관계를 파악해서, 작은 수부터 0 ~ N-1까지 순위를 매깁니다. 입력: 2 3 1 => 제일 작은 수 1은 '0'번 => 두번째로 작은 수 2는 '1'번 => 제일 큰 수 3은 '2'번으로 순위가 매겨집니다. 출력: 1 2 0 만약 같은 숫자가 있다면, 왼쪽에 있는 숫자가 순위가 낮습니다. 3...

[구현/브루트포스] 백준 1051 숫자 정사각형 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 2. 문제 풀이 N, M 크기의 숫자 직사각형이 주어집니다. 1~9까지의 숫자가 나열된 직사각형에서 네 모퉁이가 모두 같은 가장 큰 정사각형의 넓이를 구해야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(..

[탐색/BFS] 백준 13913 숨바꼭질 4 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 문제 풀이 수빈이는 1초에 +1, -1, *2만큼 이동할 수 있습니다. X 지점에서 Y로 이동하는 최소 시간을 구해야 합니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 1697 숨바꼭질 - Python [탐색/BFS] 백준 1697 숨바꼭질 - Python [ Contents ] 1. 문제 (링크 참조) 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질..

[탐색/BFS] 백준 12851 숨바꼭질 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 2. 문제 풀이 수빈이는 1초에 x+1, x-1, x*2 만큼 이동할 수 있습니다. 현재 위치에서 동생이 있는 위치로 이동하려면, 최소 몇 초가 필요한지 구해야 합니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 1697 숨바꼭질 - Python [탐색/BFS] 백준 1697 숨바꼭질 - Python [ Contents ] 1. 문제 (링크 참조) 16..

[탐색/BFS] 백준 13549 숨바꼭질 3 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 문제 풀이 수빈이는 1초 후에 X-1 또는 X+1로 이동할 수 있으며, 2*X로의 순간이동에는 시간이 소모되지 않습니다. K 위치에 있는 동생에 도달하는 가장 짧은 시간을 구해야 합니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 1697 숨바꼭질 - Python [탐색/BFS] 백준 1697 숨바꼭질 - Python [ Contents ] 1. 문제..

[구현/수학] 백준 1598 꼬리를 무는 숫자 나열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1598번: 꼬리를 무는 숫자 나열 첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 수는 10,000,000 이하이다. www.acmicpc.net 2. 문제 풀이 위와 같이 나열된 숫자판에서, 두 숫자 간의 직각 거리를 구하는 문제입니다. 여기서 '직각 거리'란 떨어진 가로와 세로축의 거리를 합한 걸 말합니다. 위 예제는 가로로 '6', 세로로 '2'만큼 떨어져있고, 직각 거리는 8입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 a, b = map(int, input().split()) # 직각 거리 계산 row = abs(((b-1)//4 + 1) - ((a-1)//4 + 1)) col = ab..

[구현/수학] 백준 4635 Speed Limit - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4635번: Speed Limit The input consists of one or more data sets. Each set starts with a line containing an integer n, 1 ≤ n ≤ 10, followed by n pairs of values, one pair per line. The first value in a pair, s, is the speed in miles per hour and the second value, t, is t www.acmicpc.net 2. 문제 풀이 속도가 바뀔 때마다, 현재 속도와 총 경과 시간이 주어집니다. 이를 통해서 총 이동 거리를 구해야 합니다. 3. 코드 import sys..

[구현/문자열] 백준 1284 집 주소 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1284번: 집 주소 재석이는 대문에 붙이는 (주소를 나타내는) 호수판 제작업체의 직원이다. 고객에게 전달할 호수판은 숫자와 숫자 사이 그리고 왼쪽 오른쪽으로 적당히 여백이 들어가 줘야하고 숫자마다 차지하 www.acmicpc.net 2. 문제 풀이 1) 양 끝에는 1cm 여백이 있고, 각 숫자 사이에는 1cm 여백 2) 숫자 0은 4cm, 숫자 1은 2cm, 나머지 숫자들은 3cm씩 공간을 차지 위 규칙에 따라, 주어진 숫자가 차지하는 공간을 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline while True: # 입력 N = input().rstrip() if N == '0': break res = 1 # ..

[구현/수학] 백준 1247 부호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1247번: 부호 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거 www.acmicpc.net 2. 문제 풀이 주어진 입력의 합을 구하고, 부호를 판별합니다. 3. 코드 import sys input = sys.stdin.readline # 테스트케이스 for _ in range(3): # 입력 n = int(input()) _sum = 0 for _ in range(n): _sum += int(input()) # 출력 if _sum == 0: print(0) elif _sum..

[구현/수학] 백준 24356 ЧАСОВНИК - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24356번: ЧАСОВНИК Група ученици излезли на разходка след училище. При тръгване електронният часовник на Тони показвал t1 часа и m1 минути. Те обикаляли около ез www.acmicpc.net 2. 문제 풀이 호수를 한 바퀴 도는 데에는 30분이 걸립니다. 산책 시작시간과 종료시간이 주어지고, 산책시간과 호수를 돈 횟수를 출력합니다. 단, 날짜가 바뀌면서 시작시간이 종료시간보다 늦을 수도 있습니다. 3. 코드 # 입력 t1, m1, t2, m2 = map(int, input().split()) # 시간 계산 time = (t2-t1)*6..

[구현/수학] 백준 20867 Rulltrappa - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20867번: Rulltrappa I exempel 1 är båda köer tomma, så Paulina kan omedelbart börja gå upp längs rulltrappan. Om hon står stilla i rulltrappan färdas hon med 1 trappsteg per sekund, så det tar $\frac{50}{1} = 50$ sekunder. Om hon istället går upp i rulltrappan fä www.acmicpc.net 2. 문제 풀이 에스컬레이터를 타는 것과, 계단을 올라가는 것 중에서 어느 게 더 빠른지 판별하는 문제입니다. 3. 코드 # 입력 M, S, G = map(float..

[구현/수학] 백준 20839 Betygsättning - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20839번: Betygsättning På första raden står tre heltal $1 \leq x \leq 30$, $1 \leq y \leq 30$ och $1 \leq z \leq 30$, antalet A-, C- och E-kriterier som finns. På den andra raden står tre heltal $0 \leq x' \leq x$, $0 \leq y' \leq y$ och $0 \leq z' \leq z$, antalet A-, C- o www.acmicpc.net 2. 문제 풀이 x, y, z의 성적기준과 학생 점수가 입력이 주어집니다. A: 3과목 모두 기준 충족 B: x 기준의 절반 점수 이상, 나머지는..

[구현/수학] 백준 24365 ПЧЕЛИЧКАТА МАЯ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24365번: ПЧЕЛИЧКАТА МАЯ На три цветя, подредени в редица на разстояние през 1 метър, са кацнали пчели. На лявото цвете пчелите не са повече от тези на средното, а на ср www.acmicpc.net 2. 문제 풀이 a지점보다는 b지점이, b지점보다는 c지점에 벌이 많이 모여있습니다. 세 지점의 벌을 균등하게 분배할 때, 최소의 이동횟수는 얼마일까요? a, b, c 지점의 합은 3의 배수이므로, 평균값만 남기고 왼쪽으로 옮기면 됩니다. 3. 코드 # 입력 a, b, c = map(int, input().split()) # 출력 a..

[구현/수학] 백준 23375 Arm Coordination - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23375번: Arm Coordination All the cool kids in town want to become a member of the Bots and Androids Programmer Club (BAPC). To become a member of the club, applicants must show a feat of their skills with a home-made robot that is programmed to perform some tricks. Just like your www.acmicpc.net 2. 문제 풀이 원의 중심점과 반지름이 주어집니다. 원 안의 내접하는 정사각형의 좌표를 출력해야 합니다. 문제는 쉬우나, 예제 입출력..

[구현/수학] 백준 17356 욱 제 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17356번: 욱 제 욱의 욱제력과 제의 욱제력이 한 줄에 주어진다. 욱제력은 0 이상 5,000 이하의 정수이다. www.acmicpc.net 2. 문제 풀이 욱제력을 측정하는 문제입니다. M은 B-A/100이고, 욱제력은 1/(1+10^M)입니다. 3. 코드 A, B = map(int, input().split()) M = (B-A)/400 print(1/(1+10**M))

[구현/수학] 백준 24860 Counting Antibodies - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24860번: Counting Antibodies Immunoglobulins also known as antibodies are protein molecules. Antibodies play one of the key roles in the immune reaction --- they detect harmful foreign agents --- bacteria or viruses --- and help to eliminate them. Every foreign molecule binds with uni www.acmicpc.net 2. 문제 풀이 V_k, J_k, V_λ, J_λ, V_h, D_h, J_h가 주어집니다. 위와 같은 방식으로 면역 세포가 생..

[구현/수학] 백준 24072 帰省 (Homecoming) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24072번: 帰省 (Homecoming) ビーバーのビ太郎は帰省することにした.今日から A 日後の午前に実家に着き,今日から B 日後の午前に実家を去る.それを聞きつけたビーバーのビバ子は,今日から C 日後の午後にビ www.acmicpc.net 2. 문제 풀이 문제를 요약하면, 장땡은 A일 후 오전에 도착해서 C일 후 오전에 떠납니다. 센센이 B일 후 오후에 도착한다면, 둘은 만날 수 있는지 판별해야 합니다. 3. 코드 # 입력 A, B, C = map(int, input().split()) # 계산 if A

[구현/수학] 백준 21638 SMS from MCHS - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21638번: SMS from MCHS The first line of input contains two integers $t_1$ and $v_1$ --- the temperature and the wind speed for today ($-50 \le t_1 \le 50$; $0 \le v_1 \le 20$). The second line contains two integers $t_2$ and $v_2$ --- the temperature and the wind speed for tomo www.acmicpc.net 2. 문제 풀이 오늘의 기온, 풍속과 함께, 내일의 기온, 풍속이 주어집니다. 3. 코드 # 입력 t1, v1 = map(int, inp..

[구현/수학] 백준 24075 計算 (Calculation) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24075번: 計算 (Calculation) 2 つの整数 A, B が与えられる.A+B, A-B の中で最大の値と最小の値を順に出力せよ. www.acmicpc.net 2. 문제 풀이 A+B와 A-B의 대소를 비교하는 문제입니다. 3. 코드 # 입력 A, B = map(int, input().split()) # 출력 print(max(A+B, A-B)) print(min(A+B, A-B))

[구현/수학] 백준 21631 Checkers - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21631번: Checkers The only line of input contains two integers $a$ and $b$ --- the number of white and black pieces, respectively ($0 \le a, b \le 10^{18}$). www.acmicpc.net 2. 문제 풀이 검은색 줄무늬는 '위아래가 흰색 말' 또는 '타워 끝으로 둘러싸인 연속된 검은 말'을 의미합니다. 흰색 말과 검은색 말의 개수가 주어질 때, 최대로 얻을 수 있는 검은색 줄무늬의 개수를 구해야 합니다. 1) 만약 흰색 말이 검은색 말보다 많다면, 흰색 말 사이사이에 검은색 말을 끼어넣어서 '검은색 말' 개수만큼의 줄무늬를 얻을 수 있습니..

[NP/3-SAT완전] 백준 17903 Counting Clauses - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17903번: Counting Clauses The input is a single instance of the 3-SAT problem. The first line is two space-separated integers: m (1 ≤ m ≤ 20), the number of clauses and n (3 ≤ n ≤ 20), the number of variables. Then m clauses follow, one clause per line. Each clause consists www.acmicpc.net 2. 문제 풀이 3항인 SAT(Satisfiability problem, 충족 가능성 문제)입니다. 즉, 해당 논리식이 참이 되는 변수값이 존재하..

[구현/수학] 백준 21354 Äpplen och päron - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21354번: Äpplen och päron En rad med två heltal $A,P$ ($0 \le A,P \le 1000)$, antalet äpplen Axel har lyckats sälja, och antalet päron Petra har lyckats sälja. www.acmicpc.net 2. 문제 풀이 Axel은 사과를, Petra는 배를 판매합니다. 사과와 배의 판매량이 주어질 때, 더 많은 돈을 번 사람을 출력해야 합니다. 3. 코드 # 입력 a, p = map(int, input().split()) # 출력 if a*7 > p*13: print("Axel") elif a*7 < p*13: print("Petra") else: ..

[구현/수학] 백준 24751 Betting - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24751번: Betting For each option (option one, then option two), display the number x such that 1:x is the switch-payout-ratio for that option. Your answer should have an absolute or relative error of at most $10^{-3}$. www.acmicpc.net 2. 문제 풀이 트위치의 베팅 시스템과 비슷합니다. 포인트를 걸고 이기면, 자신이 건 포인트가 많을수록 더 많은 포인트를 얻습니다. 자신이 건 포인트가 선택지의 총 포인트의 p%라면, 전체 상금(포인트)의 p%를 얻습니다. 위 문제처럼 선택지가 ..

[구현/수학] 백준 24087 アイスクリーム (Ice Cream) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24087번: アイスクリーム (Ice Cream) JOI アイスクリーム店は,非常に高さのあるアイスクリームタワーが名物のアイスクリーム店である.アイスクリームタワーとは,ベースとなるアイスクリームの上に,追加のアイスクリーム www.acmicpc.net 2. 문제 풀이 기본으로 250엔에 Acm 아이스크림이 주어집니다. 100엔마다 Bcm씩 추가할 수 있을 때, Scm 이상의 아이스크림을 살려면 최소 얼마가 필요한지 계산합니다. 3. 코드 # 입력 s = int(input()) a = int(input()) b = int(input()) # 출력 res = 250 if s

[구현/수학] 백준 13623 Zero or One - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13623번: Zero or One Everyone probably knows the game Zero or One (in some regions in Brazil also known as Two or One), used to determine a winner among three or more players. For those unfamiliar, the game works as follows. Each player chooses a value between zero or one; pro www.acmicpc.net 2. 문제 풀이 세 사람이 0 또는 1 중에 하나를 선택합니다. 어느 한 사람만 0 또는 1을 선택했다면, 그 사람이 승리합니다. 단, 모두..

[구현/수학] 백준 13580 Andando no tempo - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13580번: Andando no tempo Imagine que você tenha uma máquina do tempo que pode ser usada no máximo três vezes, e a cada uso da máquina você pode escolher voltar para o passado ou ir para o futuro. A máquina possui três créditos fixos; cada crédito representa uma certa qua www.acmicpc.net 2. 문제 풀이 3개의 숫자가 주어집니다. 이 숫자만큼 과거로 혹은 미래로 시간여행을 할 수 있습니다. 시간여행은 반드시 1번 이상해야 하며, 현재로..

[구현/수학] 백준 8674 Tabliczka - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8674번: Tabliczka Mama przyniosła Piotrusiowi i Pawełkowi tabliczkę czekolady o wymiarach a i b. Chłopcy chcą podzielić tabliczkę za pomocą jednego prostego łamania, wzdłuż kostek pionowych lub poziomych. Chłopcy chcą podzielić tabliczkę jak najbardziej spra www.acmicpc.net 2. 문제 풀이 a*b 크기의 초콜릿이 주어집니다. 단 1번만 쪼갤 때, 두 크기의 차이가 최소가 되야 합니다. 3. 코드 # 입력 a, b = map(int, input()..

[CSS] 스타일이 적용되는 우선순위 (cascading, overriding) [내부링크]

한 태그에 여러 스타일이 적용될 때, CSS는 우선순위에 따라 스타일이 지정됩니다. 이러한 CSS의 캐스케이딩(cascading)과 오버라이딩(overriding)에 대해 알아보겠습니다. [ Contents ] 1. 스타일 캐스케이딩(Style Cascading)과 오버라이딩(Overriding) Cascading은 '위에서 아래로 흐르는' 또는 '상속하는'이라는 뜻을 갖고 있습니다. 하나의 태그에 다양한 스타일이 지정되었을 경우, CSS는 우선순위에 따라 하나씩 적용합니다. 맨 마지막에 적용되는 스타일이 가장 우선순위가 높으며, 해당 스타일로 덮어쓰게 됩니다. (또는 우선순위가 낮은 스타일은 무시되기도 합니다.) 2. 스타일 우선순위 1) 나중에 적용한 속성값의 우선순위가 높음 p {color: blu..

[CSS] 스타일을 지정하는 5가지 방법 (타입/자손/클래스/아이디/가상클래스 선택자) [내부링크]

CSS에서는 '선택자(Selectors)'를 통해 스타일을 지정합니다. 여기서 선택자는 'HTML의 어떤 요소에 CSS를 적용'할 것인지를 결정하며, 이 글에서는 스타일을 지정하는 5가지 선택자를 알아보겠습니다. [ Contents ] 1. 타입/태그 선택자 타입/태그(Type/Tag) 선택자: 특정 태그(HTML 요소)에 스타일을 정의할 때 사용 웹페이지 내 모든 특정 태그에 스타일을 적용할 수 있습니다. h2, h3 {color: red; font-size: 40px;} * {color: red;} 예를 들어, 위 css 코드는 웹페이지 내 모든 h2, h3 태그가 빨간색이고, 40px로 지정됩니다. 힌편, 모든 태그에 적용하고 싶은 스타일은 *(전체 선택자)를 사용해서 정의할 수 있습니다. 2. 자..

[CSS] CSS를 적용하는 4가지 방법 [내부링크]

CSS 스타일을 적용하는 4가지 방법에 대해서 알아보겠습니다. [ Contents ] 1. 인라인 스타일 시트 [inline] 직접 태그에 스타일을 적용하는 방법입니다. 통일성 및 가독성을 해치며 유지보수가 어렵기 때문에, 특수한 경우에만 제한적으로 사용합니다. star가 되고나서 star7sss.tistory.com 2. 전역 스타일 시트 [internal / embedded / global] 태그 {속성: 속성값;} head 태그 내에 style 태그를 이용해서, HTML 내의 전체 태그에 서식을 적용합니다. 전체 웹페이지에 적용되기 때문에 global 방식이라 부르기도 하고, head 태그 내에 스타일을 정의하기 때문에 embedded 방식이라고도 합니다. body 태그 내의 h2는 모두 빨간색이고..

[CSS] 캐스케이딩(계단형) 스타일 시트란? CSS의 구성요소와 장점 [내부링크]

CSS의 정의와 개요에 대해서 알아보겠습니다. [ Contents ] 1. CSS란? CSS(Cascading Style Sheet): 웹페이지의 레이아웃이나 스타일, 디자인을 정의하는 언어 HTML이 웹페이지의 내용이나 구조를 담당한다면, CSS는 웹페이지를 꾸며주는 '서식'입니다. CSS를 통해서 색깔이나 크기, 여백, 배치까지도 조정할 수 있습니다. 그런데 왜 '계단형' 스타일 시트일까요? 그 이유는 스타일이 '중첩'해서 적용 가능하며, 동일한 속성일 경우 '우선순위'에 따라 적용되기 때문입니다. 즉 우선순위에 따라 스타일은 계층적으로 존재하며, 우선순위가 높은 스타일부터 하나씩 적용됩니다. 이에 대한 자세한 설명은 추후 글을 통해서 서술하겠습니다. 2. CSS 구성 요소 선택자 { 속성1: 속성값..

[HTML] 블록 태그와 인라인 태그의 종류와 차이점 (feat. div와 span) [내부링크]

HTML 태그의 2가지 분류인 'Block' 요소와 'Inline' 요소를 알아보겠습니다. [ Contents ] 1. Block 태그와 Inline 태그 Block(블록): 줄바꿈이 일어나며, 상하로 배치가능 Inline(인라인): 줄바꿈 없이 이어서 출력되며, 좌우로 배치가능 (한 줄에 출력) Block 태그는 항상 '새로운 라인'에서 시작하며, 양 옆에 다른 블록 태그를 배치하지 않고 독점해서 사용합니다. 따라서, 블록 태그가 끝나면 자동으로 줄바꿈이 됩니다. 반면 Inline 태그는 줄 사이(in line)에 배치할 수 있습니다. 블록 태그 내부에 삽입할 수 있으며, 인라인 태그로만 잇따라 한 줄로 사용할 수도 있습니다. 즉 블록 태그와 인라인 태그의 가장 큰 차이점은, '태그가 끝난 뒤, 줄바뀜..

[구현/수학] 백준 24083 短針 (Hour Hand) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24083번: 短針 (Hour Hand) JOI 高校の生徒である葵はアナログ時計を手に入れた.この時計には外周に沿って 12 個の目盛りがあり,時計回りに 1 から 12 までの番号が順に付けられている. この時計の短針は時計回 www.acmicpc.net 2. 문제 풀이 시침이 A를 가리킬 때, B시간이 지난 뒤 가리키는 시침을 구해야 합니다. 3. 코드 # 입력 a = int(input()) b = int(input()) # 출력 hour = (a+b) % 12 print(hour if hour != 0 else 12) 12 배수이면, 0이 아니라 12시를 가르켜야 합니다.

[구현/수학] 백준 21633 Bank Transfer - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21633번: Bank Transfer Tanya has an account in "Redgotts" bank. The bank has the commission to transfer money to "Bluegotts" bank that her friend Vanya has the account in. Tanya has read her bank rules and learned the following: The commission for the bank transfer is $25$ tugri www.acmicpc.net 2. 문제 풀이 이체 수수료를 계산합니다. 수수료는 '25 + 송금액*0.01' 로 계산하며, 최소 100 ~ 최대 2000입니다. 3...

[구현/수학] 백준 20233 Bicycle - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20233번: Bicycle The first four lines of the input contain integers $a$, $x$, $b$, and $y$ ($0 \leq a, x, b, y \leq 100$), each on a separate line. The last line contains a single integer $T$ ($1 \leq T \leq 1440$) --- the total time spent on a bicycle during each day. www.acmicpc.net 2. 문제 풀이 두 요금제의 비용을 구하는 문제입니다. 첫 번째 요금제: 기본 요금 a루블, 하루 30분을 초과하면 분당 x 루블의 초과비용 두 번째 요금..

[구현/수학] 백준 21591 Laptop Sticker - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21591번: Laptop Sticker The single line of input contains four integers $w_c$, $h_c$, $w_s$ and $h_s$ ($1 \le w_c, h_c, w_s, h_s \le 1,000$), where $w_c$ is the width of your new laptop computer, $h_c$ is the height of your new laptop computer, $w_s$ is the width of the laptop s www.acmicpc.net 2. 문제 풀이 노트북, 스티커의 너비와 높이가 주어집니다. 스티커를 붙이려면, 여백이 1cm 정도가 남아야 합니다. 3. 코드 # 입력..

[구현/실수오차] 백준 15128 Congruent Numbers - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15128번: Congruent Numbers Each input will consist of a single test case. Note that your program may be run multiple times on different inputs. Each test case will consist of a single line with four integers p1, q1, p2 and q2 (1 ≤ p1,q1,p2,q2 ≤ 100,000) where p1/q1 and p2/q2 are www.acmicpc.net 2. 문제 풀이 직각삼각형의 두 변의 길이가 p1/q1, p2/q2로 주어집니다. 직각삼격형의 면적이 정수인지 판별해야 합니다. 3. 코..

[구현/수학] 백준 8718 Bałwanek - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8718번: Bałwanek W pierwszym wierszu wejścia znajdują się dwie liczby całkowite x, k (1 ≤ x ≤ 106, 1 ≤ k ≤ 105, k < x), oznaczające odpowiednio ilość litrów śniegu w parku oraz z ilu litrów śniegu zbudowana jest jedna z kul śnieżnych bałwana. www.acmicpc.net 2. 문제 풀이 가장 큰 눈사람을 만드는 문제입니다. 입력에는 '눈사람을 만들 수 있는 눈의 양 x'와 '이미 만든 눈 뭉치 k'가 주어집니다. 눈사람은 총 3개의 눈뭉치를 쌓아서 만들어야 하며, 위에 ..

[구현/수학] 백준 18414 X に最も近い値 (The Nearest Value) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18414번: X に最も近い値 (The Nearest Value) 整数 X, L, R が与えられる. L 以上 R 以下の整数のうち,X との差の絶対値が最も小さいものを出力せよ.そのような整数はちょうど 1 つだけ存在することが証明できる. www.acmicpc.net 2. 문제 풀이 L과 R 사이의 숫자 중에서, X와 가장 가까운 정수를 뽑는 문제입니다. 3. 코드 # 입력 X, L, R = map(int, input().split()) # X가 L보다 작을 경우 if X < L: print(L) # X가 R보다 큰 경우 elif X > R: print(R) # X가 L과 R 사이인 경우 else: print(X) X가 L보다 작을 경우, X와 가장 가까운 숫자는 L입..

[구현/수학] 백준 8723 Patyki - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8723번: Patyki Pierwszy wiersz wejścia zawiera trzy liczby całkowite a, b, c (1 ≤ a, b, c ≤ 1000), oznaczające odpowiednio długości pierwszego, drugiego i trzeciego patyka. www.acmicpc.net 2. 문제 풀이 세 변의 길이가 주어집니다. 해당 삼각형이 정삼각형인지, 직각삼각형인지, 둘 다 될 수 없는지를 판별해야 합니다. 정삼각형의 조건: 세 변의 길이가 모두 같음 직각삼각형의 조건: (긴 변)**2 = (짧은 변)**2 + (짧은 변)**2 참고로, 삼각형이 성립하는 조건은 '긴 변 < 짧은 변 + 짧은 변'으로 ..

[구현/수학] 백준 15051 Máquina de café - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15051번: Máquina de café A entrada consiste em 3 números, A1, A2, A3 (0 ≤ A1, A2, A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar. www.acmicpc.net 2. 문제 풀이 1 ~ 3 층 중 어느 곳에 커피머신을 두는 게 좋은지 고르는 문제입니다. 각 층별 사원 수가 입력으로 주어지며, 사원들은 매일 1잔씩 커피를 마십니다. 계단을 한 번 오르거나 내릴 때 1분이 소요되며, 이를 감안하여 최소의 소요시간을 구해야 합니다. 3. 코드 # 입력 A1 = int(input()..

[구현/수학] 백준 21335 Another Eruption - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21335번: Another Eruption A volcano has recently erupted in Geldingadalur, Iceland. Fortunately this eruption is relatively small, and---unlike the infamous Eyjafjallajökull eruption---is not expected to cause delayed international flights or global outrage. There is some concern www.acmicpc.net 2. 문제 풀이 원의 넓이가 주어집니다. 이를 통해서 원주의 길이를 구해야 합니다. 3. 코드 from math import pi # ..

[구현/수학] 백준 8710 Koszykarz - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8710번: Koszykarz W pierwszej linii wejścia 3 liczby całkowite: k, w, m (1 ≤ k ≤ 200, 1 ≤ w, m ≤ 109), oznaczające odpowiednio wysokość Kozika, wymaganą przez trenera wysokość oraz wartość powiększania się guza po każdym uderzeniu. www.acmicpc.net 2. 문제 풀이 원하는 키(k)만큼 되기위해, 머리를 후려칩니다. 머리를 후려칠 때마다, 혹이 m cm씩 자라납니다. 몇 번 때려야 k이상이 될 수 있을까요? (신박한... 또라이..) 3. 코드 # 입력 k, w, m =..

[구현/수학] 백준 15474 鉛筆 (Pencils) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15474번: 鉛筆 (Pencils) JOI 君は10本の鉛筆を入手したい.セット X は3本で100円,セット Y は5本で180円である.この時,セット X を選んだ場合は,セットを4つ購入する必要があり400円必要である.セット Y を www.acmicpc.net 2. 문제 풀이 n개의 연필을 사야 합니다. X세트에는 a개를 b 값에 팔고, Y세트에는 c개를 d값에 팝니다. 어느 세트를 사는 게 유리한지 구하는 문제입니다. 각 세트를 구입했을 때, 들어가는 비용을 계산합니다. 3. 코드 # 입력 n, a, b, c, d = map(int, input().split()) # 계산 X = n//a if n % a != 0: X += 1 Y = n//c if n % c != ..

[구현/수학] 백준 18411 試験 (Exam) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18411번: 試験 (Exam) JOI 君は情報の試験を 3 回受けた.試験の点数はすべて 0 以上 100 以下の整数である. JOI 君の成績は 3 回の試験の点数のうち高い方から 2 つを足し合わせた合計によって決まる. 3 回 www.acmicpc.net 2. 문제 풀이 시험 점수 3개가 주어집니다. 제일 못 본 과목을 제외한, 점수의 합을 구합니다. 3. 코드 # 입력 a, b, c = map(int, input().split()) # 출력 print(sum((a, b, c)) - min(a, b, c))

[구현/수학] 백준 14038 Tournament Selection - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14038번: Tournament Selection The output will be either 1, 2, 3 (to indicate which Group the player should be placed in) or -1 (to indicate the player has been eliminated). www.acmicpc.net 2. 문제 풀이 1~6경기까지의 경기결과가 주어집니다. 이긴 경기가 2번 이하이면 그룹 '3', 4번 이하이면 그룹 '2', 5번 이상이면 그룹 '1'에 배치됩니다. 이긴 횟수를 계산해서 배치된 그룹을 구합니다. 3. 코드 # 입력 win = 0 for _ in range(6): if input() == 'W': win += ..

[구현/수학] 백준 15610 Abbey Courtyard - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15610번: Abbey Courtyard Bath’s annual Christmas market runs from the 23rd of November 2017 until the 10th of December 2017. During this time, the market will occupy the entire square courtyard of Bath Abbey. To brighten things up at night, a single long strand of cheerful festi www.acmicpc.net 2. 문제 풀이 정사각형 너비가 주어집니다. 너비를 통해 둘레의 길이를 구해 출력합니다. 3. 코드 # 입력 a = int(input()..

[구현/수학] 백준 14065 Gorivo - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14065번: Gorivo Mirko je nedavno otputovao u Ameriku i tamo je iznajmio moderan američki kabriolet narančaste boje s bijelim crtama, automatskim mjenjačem, navigacijom, i . . . prikaznikom na engleskom jeziku s imperijalnim sustavom mjera. Najviše ga muči to što je www.acmicpc.net 2. 문제 풀이 1갤런당 갈 수 있는 거리가 mile로 주어집니다. 이를 통해, 100km를 주행하는 데에 필요한 기름의 양을 liter로 산출해야 합니다. 1 ..

[HTML] 시맨틱 태그, 웹페이지의 구조를 알려주는 주석 [내부링크]

웹 페이지의 구조를 잡을 때 사용하는 '시맨틱 태그'에 대해서 배워보겠습니다. [ Contents ] 1. 시맨틱 태그란? 시맨틱 태그(Semantic Tag): 문서의 구조와 의미를 전달하는 태그 시맨틱 태그는 웹 페이지 상에 노출되지 않습니다. 그저 HTML 문서상으로만, 해당 부분이 어떤 내용인지를 알려주는 주석에 가깝습니다. 그렇다면 굳이 왜 시맨틱 태그를 사용할까요? 그 이유는 '웹 3.0 시맨틱 웹'이 등장했기 때문입니다. 시맨틱 웹은 '웹 문서를 구조화해서 의미 있는 내용이 탐색 가능한 웹'을 뜻합니다. 여기서 탐색하는 주체는 '크롤링 봇'입니다. 정보의 홍수에서, 검색에 적합한 페이지를 찾기 위해서는 까다로운 검증이 필요합니다. 거기다가 해당 내용이 목차인지, 인용문인지, 본문인지 모르면 ..

[HTML] 하이퍼링크 태그 <a> (새 탭으로 열기, 페이지 내 이동) [내부링크]

하이퍼링크를 연결하는 에 대해서 알아보겠습니다. [ Contents ] 1. 하이퍼링크 태그 페이지 이름 태그는 'anchor'라는 뜻으로, 하이퍼링크를 연결합니다. href 속성값 지정은 필수이며, 'Hypertext reference'라는 뜻입니다. star가 되고나서 하이퍼링크를 클릭하면, href의 링크 주소로 이동합니다. 태그 안 내용은 '밑줄' 친 '파란색' 글자로 표시됩니다. 클릭 후에는 '보라색' 글자로 바뀌며, 이미 접속했던 페이지임을 나타냅니다. 2. 태그 속성값 target target 속성값 _self 현재 페이지에서 열기 (기본값) blank 새 탭에서 열기 _top 가장 상위 창에서 열기 _parent 부모창에서 열기 frame 이름 해당 프레임에서 열기 target은 새로운 페..

[구현/수학] 백준 20215 Cutting Corners - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20215번: Cutting Corners A large coffee spill in the warehouse of the Busy Association of Papercutters on Caffeine has stained the corners of all paper in storage. In order to not waste money, it was decided that these dirty corners should be cut off of all pieces of paper. A few www.acmicpc.net 2. 문제 풀이 모서리에 얼룩이 묻어있어 제거해야 합니다. 대각선으로 짤라내는 방법이 '직사각형으로 도려내는 방법'보다 얼마나 효율적인..

[구현/수학] 백준 16600 Contemporary Art - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16600번: Contemporary Art At the Van Abbemuseum of modern and contemporary art in Eindhoven, we always look to present our muses in the most interesting way possible. Sometimes we have our work cut out for us. Today we are exploring whether we can modify one of our perfectly-square www.acmicpc.net 2. 문제 풀이 너비가 주어지면, 둘레의 길이를 출력하는 문제입니다. 3. 코드 # 입력 a = int(input()) # 출력 p..

[구현/문자열] 백준 21598 SciComLove - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21598번: SciComLove 당신은 싸이컴을 향해 절을 하려고 합니다. 하지만, 당신이 싸이컴에 들어오고 싶어서 절을 한 번 할 수도 있고, 싸이컴을 매우 싫어해 절을 두 번 할 수도 있습니다. 당신이 절을 할 횟수가 주어 www.acmicpc.net 2. 문제 풀이 주어진 횟수만큼 "SciComLove"를 출력합니다. 3. 코드 # 입력 N = int(input()) # 출력 for _ in range(N): print("SciComLove")

[구현/수학] 백준 24294 ГРАДИНА - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24294번: ГРАДИНА Цветин живее на поле, разделено на квадратни клетки с размер 1x1. Той много обича цветята, затова често прави нови лехи за тях. Цветните лехи и www.acmicpc.net 2. 문제 풀이 위와 같이 한 변이 맞닿은 두 직사각형이 있습니다. 두 직사각형을 둘러싼 면적을 구해야 합니다. 우선 두 직사각형의 높이는 그대로 반영됩니다. 너비는 긴 변의 2배입니다. 남은 네 모퉁이 4개까지 더해주면, 화단의 둘레의 길이가 나옵니다. 3. 코드 # 입력 w1 = int(input()) h1 = int(input()) w2 = ..

[구현/수학] 백준 21612 Boiling Water - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21612번: Boiling Water At sea level, atmospheric pressure is 100 kPa and water begins to boil at 100C. As you go above sea level, atmospheric pressure decreases, and water boils at lower temperatures. As you go below sea level, atmospheric pressure increases, and water boils www.acmicpc.net 2. 문제 풀이 물의 끓는점을 구하고, 1기압보다 낮은지 높은지를 판별합니다. 3. 코드 # 입력 B = int(input()) # 출력 re..

[구현/수학] 백준 17874 Piece of Cake! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17874번: Piece of Cake! The input consists of a single line containing three integers n (2 ≤ n ≤ 10 000), the length of the sides of the square cake in centimeters, h (0 < h < n), the distance of the horizontal cut from the top edge of the cake in centimeters, and v (0 < v

[구현/수학] 백준 15025 Judging Moose - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15025번: Judging Moose When determining the age of a bull moose, the number of tines (sharp points), extending from the main antlers, can be used. An older bull moose tends to have more tines than a younger moose. However, just counting the number of tines can be misleading, as www.acmicpc.net 2. 문제 풀이 양쪽의 뿔에서 뻗어 나온 가지의 개수가 주어집니다. 양쪽 뿔의 개수가 같다면 "Even 가지 갯수"를 출력하고, 같지 않다..

[구현/수학] 백준 16017 Telemarketer or not? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16017번: Telemarketer or not? Here at the Concerned Citizens of Commerce (CCC), we have noted that telemarketers like to use seven-digit phone numbers where the last four digits have three properties. Looking just at the last four digits, these properties are: the first of these four d www.acmicpc.net 2. 문제 풀이 전화번호 뒷 4자리가 주어집니다. 1번째와 4번째 숫자가 8 또는 9이고, 2번째와 3번째 숫자가 같으면 '..

[HTML] 띄어쓰기, 줄바꿈 하는 방법 (feat, pre태그 / 유니코드 특수문자 삽입) [내부링크]

HTML에서 빈칸, 줄 바꿈 하는 방법을 알아봅니다. 그리고 유니코드로 특수문자를 입력하는 방법도 살펴보겠습니다. [ Contents ] 1. 줄 바꿈 태그 HTML에서 아무리 Enter를 눌러도, 줄이 바뀌진 않습니다. 태그 내에서도 줄 바꿈은 되지 않아요. 줄 바꿈은 태그로 해야 합니다. br은 'break'의 약자로, 줄 바꿈을 의미합니다. 태그는 다른 태그 안에서도 사용할 수 있으며, 태그 안에서 쓰면 한 줄을 띄워줍니다. 2. 빈 칸 줄 바꿈은 태그로 해결했습니다. 하지만, 이번엔 빈칸(스페이스)이 문제입니다. 아무리 빈칸을 많이 남겨도 '1번'만 적용됩니다. 그 대신, 빈칸을 나타내는 유니코드 문자셋 을 사용해야 합니다. nbsp는 'non-break-space'의 약자로 빈 칸을 의미합니다...

[HTML] HTML의 기본 태그: 제목(h), 문단(p), 리스트(ol, ul, dl, li) [내부링크]

HTML의 기본 태그를 알아봅니다. [ Contents ] 1. 제목 태그 jangThang jangThang jangThang jangThang jangThang jangThang 제목 태그는 'Heading'의 약자로 h를 사용합니다. 중요도에 따라 h1 ~ h6까지 있으며, h1이 가장 큽니다. 주로 h1을 제목으로 사용하고, h2~h6은 부제목으로 사용합니다. 특히 은 페이지의 제목이므로, 꼭 1개만 사용해야 좋습니다. (웹 크롤러가 태그를 페이지의 제목으로 인식하고, 페이지의 주제 및 내용을 분류합니다.) 세부적인 특징으로는 '굵게(bold)' 표시되며, h태그가 끝나면 자동으로 줄바꿈이 됩니다. 그리고 제목 하단에는 여백이 넉넉하게 주어집니다. 2. 문단 태그 star가 되고나서 Tistory..

[Greedy/그리디] 백준 13597 Tri-du - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13597번: Tri-du Tri-du é um jogo de cartas derivado do popular jogo de Truco. O jogo utiliza um baralho normal de 52 cartas, com treze cartas de cada naipe, mas os naipes são ignorados. Apenas o valor das cartas,considerados como inteiros de 1 a 13, são utilizados. No www.acmicpc.net 2. 문제 풀이 카드 2장이 입력으로 주어집니다. 나머지 1장을 어떤 숫자로 받아야 높은 족보를 만들 수 있는지 구합니다. Triple: 3장 모두 같은 숫..

[구현/수학] 백준 20976 2 番目に大きい整数 (The Second Largest Integer) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20976번: 2 番目に大きい整数 (The Second Largest Integer) 3 つの整数 A, B, C が与えられる.これらのうち 2 番目に大きい数を出力せよ. www.acmicpc.net 2. 문제 풀이 주어진 세 수 중 2번째로 큰 숫자를 출력하는 문제입니다. 3. 코드 # 입력 numlist = list(map(int, input().split())) # 정렬 numlist.sort() # 출력 print(numlist[1])

[자료구조/해시] 백준 20232 Archivist - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20232번: Archivist The only line of input contains a single integer $y$ ($1995 \le y \le 2019$), denoting the year. You don't need to process year numbers less than $1995$ or greater than $2019$, or incorrect year formats. It is guaranteed that you will be given a number bet www.acmicpc.net 2. 문제 풀이 1995년부터 2019년까지의 대회 수상자의 이름이 문제에 주어집니다. 년도가 입력되면, 해당 연도의 수상자를 출력합니다. 3...

[구현/수학] 백준 18330 Petrol - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18330번: Petrol The input consists of two lines. The first line contains an integer n (0 ⩽ n ⩽ 200), specifying the amount of petrol that will be used in the next month. The second line contains an integer k (0 ⩽ k ⩽ 360), showing the quota left in Mahya’s fuel www.acmicpc.net 2. 문제 풀이 매달 60리터는 1500 Oshloobs로 싸게 쌀 수 있습니다. 하지만, 60리터를 초과하면 2배로 비싼 3000 Oshloobs를 지불해야 합니다. ..

[구현/수학] 백준 20353 Atrium - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20353번: Atrium The atrium of a traditional Roman dormus, much like the atria of today, is a perfectly square room designed for residents and guests to congregate in and to enjoy the sunlight streaming in from above. Or, in the case of Britannia, the rain streaming in fro www.acmicpc.net 2. 문제 풀이 정사각형의 면적이 입력으로 주어집니다. 이를 통해 정사각형의 둘레의 길이를 구합니다. 3. 코드 # 입력 a = int(input()..

[구현/수학] 백준 16727 ICPC - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16727번: ICPC The first line of the input contains two space-separated integers p1 and s1, where p1 and s1 are the number of goals scored by Persepolis and Esteghlal, respectively, in the first match in which Persepolis is the home team. The second line contains two spa www.acmicpc.net 2. 문제 풀이 두 경기의 점수를 합산하고 승패를 판별하는 문제입니다. 단, 점수가 동일할 경우에는 'Away'에서 더 많은 점수를 낸 팀이 승리합니다...

[구현/수학] 백준 14173 Square Pasture - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14173번: Square Pasture In the example above, the first original rectangle has corners (6,6) and (8,8). The second has corners at (1,8) and (4,9). By drawing a square fence of side length 7 with corners (1,6) and (8,13), the original areas can still be enclosed; moreover, this is www.acmicpc.net 2. 문제 풀이 두 목초지를 포함하는 '정사각형'의 목초지를 구해야 합니다. 단, 두 목초지는 서로 겹치거나 맞닿아있지 않습니다. 예제..

[구현/수학] 백준 22015 金平糖 (Konpeito) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 22015번: 金平糖 (Konpeito) JOI 高校の生徒である葵と凛は,教師の理恵先生と一緒に 3 人で金平糖を同じ数だけ食べることにした. いま,葵は A 粒,凛は B 粒,理恵先生は C 粒の金平糖を食べた.3 人が食べた金 www.acmicpc.net 2. 문제 풀이 세 사람이 각각 음식을 먹은 개수가 입력됩니다. 다른 두 사람이 가장 많이 먹은 사람만큼 더 먹으려면, 음식이 몇 개나 더 필요한지 구해야 합니다. 3. 코드 # 입력 A, B, C = map(int, input().split()) # 출력 res = max([A, B, C])*3 - sum([A, B, C]) print(res) 세 사람이 가장 많이 먹은 사람과 동일하게 먹었을 때의 개수는, max(A..

[HTML] HTML의 태그 구성 요소와 문서 기본 구조 [내부링크]

HTML의 가장 기본적인 문서 구조와, 태그의 구성요소에 대해서 알아보겠습니다. [ Contents ] 1. HTML 태그의 구성 요소 콘텐츠 HTML은 '태그' 안에 내용을 담습니다. 예를 들어 위에 쓰인 제목은 1. HTML의 태그 구성 요소 로 쓸 수 있습니다. 태그의 종류는 크게 2가지로, '시작 태그만 있는 경우(empty, single-sided)'와 '시작 태그와 종료 태그가 모두 있는 경우(container, double-sided)'가 있습니다. 속성이 있는 태그는 '속성값'을 지정할 수 있습니다. 속성은 해당 태그에 필요한 추가적인 정보를 의미합니다. 예를 들어, 하이퍼링크 태그에는 '링크'가 필요하고, 이미지 태그에는 '이미지 링크'가 필요합니다. 태그와 속성값은 대소문자 구분이 없으..

[Atom] 아톰 에디터 설치 및 웹 개발 설정 (feat 패키지, 플러그인) [내부링크]

[ Contents ] 1. Atom Atom은 VS code와 비슷한 '소스 코드 편집기', 즉 에디터입니다. IDE가 아니기 때문에, 개발 분야에 따라 설정과 플러그인 설치가 필요합니다. 이 글에서는 웹 개발에 필요한 설정과 플러그인 설치를 해보겠습니다. A hackable text editor for the 21st Century At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config file. We can’t wait to see what you build with it. atom.io ..

[HTML] 하이퍼 텍스트 마크업 언어란? [내부링크]

HTML에 대해서 알아보고, 마크업 언어의 특징과 예시를 살펴보겠습니다. [ Contents ] 1. HTML HTML: 웹 페이지의 구조, 형태, 내용을 담당하는 마크업 언어 Hyper Text Markup Language의 약자로, 본래에는 웹페이지를 서로 연결하는 '하이퍼 링크'에서 시작했습니다. 웹 초기에는 단순히 웹페이지들이 하이퍼 링크로 연결되어 있었을 뿐이죠. 웹이 발전하면서 표, 이미지, 동영상 등이 추가되었고 지금과 같이 다채로운 웹페이지가 탄생했습니다. HTML은 웹페이지의 구조와 내용을 담당하며, 주로 '뼈대'라는 표현을 많이 씁니다. 페이지 내 콘텐츠 요소를 적절한 위치에 HTML로 추가합니다. 2. 마크업 언어란? 마크업 언어(Markup language): 를 이용해서 문서 및 ..

[구현/수학] 백준 15059 Hard choice - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15059번: Hard choice The first line contains three integers Ca, Ba and Pa (0 ≤ Ca, Ba, Pa ≤ 100), representing respectively the number of meals available for chicken, beef and pasta. The second line contains three integers Cr, Br and Pr (0 ≤ Cr, Br, Pr ≤ 100), indicati www.acmicpc.net 2. 문제 풀이 제공가능한 기내식 수와 수요량을 입력받습니다. 부족한 기내식의 수를 출력해야 합니다. 3. 코드 # 입력 available = list(m..

[구현/수학] 백준 19602 Dog Treats - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 19602번: Dog Treats There are three lines of input. Each line contains a non-negative integer less than 10. The first line contains the number of small treats, S, the second line contains the number of medium treats, M, and the third line contains the number of large treats, www.acmicpc.net 2. 문제 풀이 1*S + 2*M + 3*L S, M, L 사이즈를 가진 간식의 개수가 주어집니다. 간식의 양이 10 이상이어야 happy이고,..

[구현/수학] 백준 18408 3 つの整数 (Three Integers) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18408번: 3 つの整数 (Three Integers) 3 つの整数 A, B, C が与えられる.A, B, C はそれぞれ 1 または 2 である.1 と 2 のうち,どちらが多くあるか. www.acmicpc.net 2. 문제 풀이 세 개의 정수가 주어집니다. 세 정수는 1 또는 2입니다. 둘 중 많은 수를 출력해야 합니다. 3. 코드 # 입력 A, B, C = input().split() # 1, 2 개수 세기 one = 0 two = 0 for i in [A, B, C]: if i == '1': one += 1 else: two += 1 # 출력 if one > two: print(1) else: print(2) 입력의 개수가 단순히 3개이기 때문에, 위와 같..

[구현/문자열] 백준 6810 ISBN - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6810번: ISBN The International Standard Book Number (ISBN) is a 13-digit code for identifying books. These numbers have a special property for detecting whether the number was written correctly. The 1-3-sum of a 13-digit number is calculated by multiplying the digits a www.acmicpc.net 2. 문제 풀이 ISBN 13자리 숫자 중 홀수번째 숫자는 *3을 해서 더한 값을 구하는 문제입니다. 3. 코드 # 입력 isbn = "9780921418..

[구현/수학] 백준 6778 Which Alien? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6778번: Which Alien? Canada Cosmos Control has received a report of another incident. They believe that an alien has illegally entered our space. A person who witnessed the appearance of the alien has come forward to describe the alien’s appearance. It is your role within th www.acmicpc.net 2. 문제 풀이 외계인 종류 더듬이 (Antenna) 눈 (eyes) TroyMartian 최소 3개 최대 4개 VladSaturnian 최대 ..

[구현/수학] 백준 23825 SASA 모형을 만들어보자 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 23825번: SASA 모형을 만들어보자 당신은 SASA 연못에서 알파벳 S 모양의 블록 $N$개와 알파벳 A 모양의 블록 $M$개를 건졌다. 태영이는 연못에서 건진 블록을 이용해 학교에 전시할 SASA 모형을 최대한 많이 만들려고 한다. SASA 모형 $ www.acmicpc.net 2. 문제 풀이 S모양 N개와 A모양 M개로, SASA모형을 최대 몇 개 만들 수 있는지 구하는 문제입니다. 3. 코드 # 입력 N, M = map(int, input().split()) # 출력 print(min(N//2, M//2)) 2개씩 짝지어야 하므로, 한쪽이 많더라도 SASA모형을 만들 수 없습니다.

[구현/수학] 백준 13985 Equality - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13985번: Equality Print, on a single line, YES if the sum is correct; otherwise, print NO. www.acmicpc.net 2. 문제 풀이 등식이 성립하는지 판별하는 문제입니다. 3. 코드 # 입력 equation = input() # 등식 판별 if int(equation[0]) + int(equation[4]) == int(equation[8]): print("YES") else: print("NO")

[구현/수학] 백준 13136 Do Not Touch Anything - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13136번: Do Not Touch Anything 첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. (1 ≤ R, C, N ≤ 1,000,000) www.acmicpc.net 2. 문제 풀이 모든 좌석을 감시하기 위한 CCTV 개수를 구하는 문제입니다. 3. 코드 # 입력 R, C, N = map(int, input().split()) # 필요한 CCTV 수 row = R//N if R % N != 0: row += 1 col = C//N if C % N != 0: col += 1 print(row*col)

[Python] 파이썬 for - else, while - else 구문 사용법과 예시 [내부링크]

파이썬에서만 볼 수 있는 특수한 구문 형태인 for - else문과 while - else문을 알아보겠습니다. [ Contents ] 1. For - else for i in range(n): if i == 4: break else: print("n은 4이하 입니다.") for문에서의 else문은 "break 등으로 중간에 끊기지 않고, 전부 순회했을 때 실행되는 코드'입니다. 만약 break문으로 중간에 끊겼다면, else문은 실행되지 않습니다. 마지막 순회에서 맨 마지막에 break를 만나도, else문은 실행되지 않습니다. 즉, break문 실행 여부에 따라 else문의 실행이 결정됩니다. break와 동일한 기능을 하는 exit() 등을 쓰더라도, break를 만나지 않았기 때문에 else문이 실..

[구현/수학] 백준 17009 Winning Score - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17009번: Winning Score The first three lines of input describe the scoring of the Apples, and the next three lines of input describe the scoring of the Bananas. For each team, the first line contains the number of successful 3-point shots, the second line contains the number of www.acmicpc.net 2. 문제 풀이 농구 점수를 계산하고, 승패를 판별하는 문제입니다. 3. 코드 apple = 0 banana = 0 # 입력 for i i..

[구현/수학] 백준 18005 Even or Odd? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18005번: Even or Odd? Output 2 if the sum of any n consecutive integers in the range from 1 to 1018 must be even, 1 if the sum must be odd, or 0 if the sum could be either even or odd. www.acmicpc.net 2. 문제 풀이 n개의 연속된 자연수를 더했을 때, 짝수인지 홀수인지 판별하는 문제입니다. 1) 홀수부터 n개의 연속된 자연수의 합 2) 짝수부터 n개의 연속된 자연수의 합 경우의 수는 2가지입니다. 어차피 짝수판별에 합의 크기는 중요하지 않습니다. 따라서 '1부터 1+N까지의 합'과 '2부터 2+N까지의..

[구현/수학] 백준 19698 헛간 청약 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 19698번: 헛간 청약 $1 \le N, W, H, L \le 1,000$ www.acmicpc.net 2. 문제 풀이 헛간에 최대 입주 가능한 소의 개수를 구하는 문제입니다. 3. 코드 # 입력 N, W, H, L = map(int, input().split()) # 헛간에 들어갈 수 있는 소의 개수 cow = (W//L) * (H//L) # 출력 print(min(N, cow)) 주의할 점은 공간이 남아도 현재 소보다 많으면, 더 입주시킬 수 없습니다. 이 점 유의해주세요.

[구현/수학] 백준 16693 Pizza Deal - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16693번: Pizza Deal There’s a pizza store which serves pizza in two sizes: either a pizza slice, with area A1 and price P1, or a circular pizza, with radius R1 and price P2. You want to maximize the amount of pizza you get per dollar. Should you pick the pizza slice or the www.acmicpc.net 2. 문제 풀이 조각 피자와 피자 한 판 중 단위 용량당 더 싼 걸 고르는 문제입니다. 일반적으로 생각하면 당연히 피자 한 판이 싸겠으나.... 그..

[구현/문자열] 백준 17863 FYI - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17863번: FYI In the United States of America, telephone numbers within an area code consist of 7 digits: the prefix number is the first 3 digits and the line number is the last 4 digits. Traditionally, the 555 prefix number has been used to provide directory informatio www.acmicpc.net 2. 문제 풀이 전화번호가 주어집니다. 앞 자리가 555인지 판별하는 문제입니다. 3. 코드 # 입력 number = input() # 555인지 확인 i..

[구현/수학] 백준 5928 Contest Timing - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5928번: Contest Timing Bessie the cow is getting bored of the milk production industry, and wants to switch to an exciting new career in computing. To improve her coding skills, she decides to compete in the on-line USACO competitions. Since she notes that the contest starts on www.acmicpc.net 2. 문제 풀이 대회는 11일 11시 11분에 시작합니다. 입력된 대회 종료시간을 통해, Bessie가 응시한 시간을 구해야 합니다. 3...

[구현/수학] 백준 24723 녹색거탑 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24723번: 녹색거탑 Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외 www.acmicpc.net 2. 문제 풀이 다음과 같은 녹색 거탑이 있습니다. 높이가 N인 녹색 거탑의 꼭대기에서 바닥으로 내려오는 경우의 수를 구해야 합니다. 쉽게 생각해보면, 1층이 높아질 때마다 양쪽으로 내려올 수 있는 2가지 경로가 생깁니다. 즉, 2배씩 경우의 수가 늘어납니다. 3. 코드 # 입력 N = int(input()) print(2**N)

[구현/수학] 백준 15921 수찬은 마린보이야!! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15921번: 수찬은 마린보이야!! 기댓값 E(X)의 정의는 ‘각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값’이다. 다시 말해, 어떤 수 x가 수열에 등장할 확률 P(x) = (x의 등장 횟수) / www.acmicpc.net 2. 문제 풀이 '평균 / 기댓값'을 구하는 문제입니다. 평균: x / 총 개수 기댓값: x * x가 일어날 확률 평균과 기댓값은 사실 같은 '용어'입니다. 의미의 차이가 있을 뿐이죠. '1 / 총 개수 = x가 일어날 확률' 입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) if N == 0: print("d..

[분할정복/DP] 백준 15624 피보나치 수 7 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15624번: 피보나치 수 7 첫째 줄에 n번째 피보나치 수를 1,000,000,007으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 문제 풀이 짧은 시간 제한(1초) 내에 피보나치 수를 구해야 합니다. 2022.05.14 - [Algorithm] - [분할정복/DQ] 백준 11444 피보나치 수 6 - 파이썬(Python) 이를 위해서는 분할정복 또는 DP를 이용해야 합니다. 여기서는 피보나치 6에서 사용했던 분할 정복을 이용했습니다. 해당 방식에 대한 설명과 코드는 위 링크에 기재되어 있습니다. 3. 코드 # 입력 N = int(input()) matrix = [[1, 1], [1, 0]] # 행렬 곱셈 def mul_matrix(mat..

[구현/수학] 백준 15700 타일 채우기 4 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15700번: 타일 채우기 4 첫째 줄에 N과 M이 주어진다. (1 ≤ N, M ≤ 1,000,000,000) www.acmicpc.net 2. 문제 풀이 N*M 크기의 벽에 2*1 또는 1*2 크기의 타일을 최대한 많이 배치하는 문제입니다. 예를 들어, 4 * 3 크기의 벽은 아래와 같이 채울 수 있습니다. 먼저 1 * 2 타일을 채우는 경우, (세로 길이 // 2) * 가로길이 = (3//2) * 4 = 4개를 배치할 수 있습니다. 2 * 1 타일은 (세로 길이 % 2) * (가로 길이 // 2) = (3%2) * (4//2) = 2개를 배치할 수 있습니다. 먼저 2 * 1 타일을 채우는 경우, (가로 길이 // 2) * 세로길이 = (4//2) * 3..

[수학/백트래킹] 백준 6603 로또 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 2. 문제 풀이 로또의 경우의 수를 오름차순으로 출력하는 문제입니다. 2022.03.20 - [Algorithm] - [Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 [Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 DFS 탐색 중 가능성이 없는 방향은 가지 않는 '백트래킹' 기법에 대해서 알아보겠습니다. [ Contents ] 1..

[Python] 파이썬 for문의 iterable 속성을 통한 순회 (list, tuple, dictionary 등) [내부링크]

반복문 for문에 대해서 알아봅니다. 파이썬의 for문은 단순한 반복문보다는, 객체 내 원소를 하나하나 순회하는 구문입니다. 이러한 특성을 가진 for문의 예시까지 살펴보겠습니다. [ Contents ] 1. 반복문 For for 변수 in 순회 가능한 객체: 반복할 행위 for문은 여러 값이 저장된 자료형에서 하나씩 꺼내 변수에 넣고, 반복 수행하는 제어문입니다. C/C++/Java와 같은 전통적인 언어와 달리, for문은 정수 인덱스로 반복 횟수를 정하지 않습니다. 객체의 요소 개수에 따라, 반복 횟수가 정해집니다. 객체 내 원소를 다 꺼낼 때까지 반복하죠. for i in range(N): N번 반복문을 수행 그렇기에 반복 횟수만을 지정하려면, range() 함수를 이용해야 합니다. range(st..

[Activity] LG 인적성 및 코딩테스트 시험 후기 [내부링크]

2022년 1분기 LG 신입 인적성 및 코딩테스트를 응시했습니다. 이 글은 코딩테스트와 인적성 검사 후기를 작성했습니다. [ Contents ] 1. 코딩테스트 1) 구현/수학 문제 2022.05.26 - [Algorithm] - [구현/수학] 백준 1834 나머지와 몫이 같은 수 - 파이썬(Python) 대기업 코딩테스트의 정식 플랫폼이라고 볼 수 있는 '프로그래머스'에서 응시했습니다. 1번 문제는 가벼운 수학/구현 문제로, 5~10분 이내로 풀 수 있었습니다. 2) 자료구조/스택 문제 2022.02.10 - [Algorithm] - [자료구조/스택] 백준 4949 균형잡힌 세상 - Python 2번째 문제는 자료구조/스택 문제였습니다. '스택' 자료구조를 구현하고 응용할 수 있다면 쉽게 풀 수 있었습..

[동적계획법/DP] 백준 1309 동물원 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 2. 문제 풀이 2 * N 칸인 동물원에 사자가 배치될 수 있는 모든 경우의 수를 구하는 문제입니다. 사자는 '가로와 세로'로 붙어있을 수 없습니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic programming, DP): 작은 문제들에 대한 결과를 배열(리스트)에 저장하고, 이..

[Greedy/그리디] 백준 1946 신입 사원 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 2. 문제 풀이 선발 규칙: 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 다소 문제에서 '선발 규칙'이 어렵게 써져 있습니다. 선발 규칙만 이해하면 쉽게 해..

[탐색/BFS] 백준 2583 영역 구하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 2. 문제 풀이 사각형으로 분리된 영역의 개수의 크기를 구하는 문제입니다. 2022.07.01 - [Algorithm] - [구현/수학] 백준 2669 직사각형 네개의 합집합의 면적 구하기 - 파이썬(Python) 위 문제에서 사용했던 방법과 비슷합니다. 미리 모눈종이를 만들어두고, 사각형의 영역만 False로 바꿉니다. 그러면, 사각형이 겹쳐지더라도 문제가 되지 않습니다. 이후 BFS 탐색을 ..

[동적계획법/DP] 백준 11048 이동하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 2. 문제 풀이 (0, 0)부터 (N-1, M-1)까지 우하향으로 이동하며 최대 점수를 획득하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계..

[수학/브루트포스] 백준 10972 다음 순열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 2. 문제 풀이 다음 순열을 구하는 문제입니다. 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 순열은 오름차순 순서로 나열되며, N이 3일 때의 순열은 위와 같습니다. 3. 코드 from itertools import permutations import sys input = sys.stdin.readline n = int(input()) perm = list(map(int, input().split())) # 순열 계산 permutation = list(pe..

[그리디/브루트포스] 백준 1543 문서 검색 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 2. 문제 풀이 문서 내에 몇 개의 단어가 포함되어있는지 찾는 문제입니다. 단, 중복은 안됩니다. 문서: aaaa 단어: aa 출력: 2 예를 들어, 위 예시에서는 aa가 총 2개 있습니다. aaaa aaaa aaaa 이렇게 중복해서 찾으면 안됩니다. 3. 코드 doc = input() # 문서 word = input() # 단어 cnt = 0 # 등장 횟수 idx = 0 # 단어의 몇 번째 글자 n = len(word..

[탐색/BFS] 백준 2468 안전 영역 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 2. 문제 풀이 비에 침수되지 않는 구역(안전구역)의 최대 개수를 구하는 문제입니다. 강수량은 높이 1부터 100까지 주어집니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [..

[구현/수학] 백준 24883 자동완성 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24883번: 자동완성 D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외부 개발자들을 지원 www.acmicpc.net 2. 문제 풀이 N 또는 n이 입력되면 "Naver D2"가 출력되고, 그 외에는 "Naver Whale"이 출력되는 프로그램을 만들어야 합니다. 3. 코드 # 입력 s = input() # 자동완성 print("Naver D2" if s == 'n' or s == 'N' else "Naver Whale")

[구현/수학] 백준 16199 나이 계산하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16199번: 나이 계산하기 첫째 줄에 어떤 사람이 태어난 연도, 월, 일이 주어진다. 생년월일은 공백으로 구분되어져 있고, 항상 올바른 날짜만 주어진다. 둘째 줄에 기준 날짜가 주어진다. 기준 날짜도 공백으로 구분되어 www.acmicpc.net 2. 문제 풀이 만 나이: 국제적인 표준 방법이다. 한국에서도 법에서는 만 나이만을 사용한다. 세는 나이: 한국에서 보통 나이를 물어보면 세는 나이를 의미한다. 연 나이: 법률에서 일괄적으로 사람을 구분하기 위해서 사용하는 나이이다. 출생일과 현재 날짜가 주어지면, 나이를 계산하는 문제입니다. 최근에 '만 나이'로 통합됐죠. 이 문제를 풀면, '나이' 셈법은 확실히 알 수 있겠네요. 3. 코드 # 입력 y1, m..

[구현/수학] 백준 24736 Football Scoring - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24736번: Football Scoring There are two lines of input each containing five space-separated non-negative integers, T, F, S, P and C representing the number of Touchdowns, Field goals, Safeties, Points-after-touchdown and two-point Conversions after touchdown respectively. (0 ≤ T www.acmicpc.net 2. 문제 풀이 터치다운 - 6점 필드 골 - 3점 안전 - 2점 터치다운 후 1점 터치다운 후 2점 총 5가지의 점수..

[구현/수학] 백준 24183 Affischutskicket - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24183번: Affischutskicket Indatan består av tre heltal mellan $50$ och $200$, ytvikterna i $\frac{\text{gram}}{\text{m}^2}$ för sorterna som används till kuvertet, affischerna respektive informationsbladet. www.acmicpc.net 2. 문제 풀이 사실상 번역 문제입니다. C4, A3, A4의 1 제곱미터당 중량이 입력으로 주어집니다. 이를 통해서, C4, A3, A4의 중량을 계산합니다. 이후, 포스터를 보내는 데 필요한 C4 2장, A3 2장, A4 1장의 중량의 합을 출력합니다. 3. 코드..

[구현/수학] 백준 24568 Cupcake Party - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24568번: Cupcake Party A regular box of cupcakes holds 8 cupcakes, while a small box holds 3 cupcakes. There are 28 students in a class and a total of at least 28 cupcakes. Your job is to determine how many cupcakes will be left over if each student gets one cupcake. www.acmicpc.net 2. 문제 풀이 작은 상자에는 3개씩, 큰 상자에는 8개씩 컵 케이크가 들어있습니다. 작은 상자와 큰 상자의 개수가 주어질 때, 28개를 제외하고 남는 컵 케..

[구현/수학] 백준 24309 РАВЕНСТВО(평등) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24309번: РАВЕНСТВО Учителката по математика дала на учениците да намерят неизвестното x от равенството: a·x = b-c. Числата а, b и c са естествени числа и са такива, ч www.acmicpc.net 2. 문제 풀이 x = (b-c)/a 를 구하는 문제입니다. 1차 방정식을 해결하면 됩니다. 3. 코드 # 입력 a = int(input()) b = int(input()) c = int(input()) # 출력 print((b-c)//a)

[Python] 파이썬 딕셔너리 value로 key 찾는 방법 [내부링크]

Dictionary 구조는 key 값으로 value 값을 찾는 데에 특화되어 있습니다. 국어사전에 비유하면 찾고자 하는 단어의 뜻은 쉽게 알 수 있으나, 해당 뜻을 가진 단어는 찾기가 매우 어렵습니다. 파이썬의 딕셔너리 구조도 마찬가지입니다. 원하는 value 값을 가진 key를 찾기 위해서는 일일이 조사해야 합니다. [ Contents ] 1. for문을 활용한 전수조사 def find_value(dictionary, finding_value): for key, value in dictionary.items(): if value == finding_value: return key 일일이 for문으로 해당하는 value를 가진 key가 있는지 조사합니다. 발견하면 바로 key를 반환합니다. def fin..

[Python] 파이썬 딕셔너리(Dictionary) 연산 및 메서드 [내부링크]

파이썬 딕셔너리 자료형에 대해 알아보고, 관련 연산과 메서드까지 살펴보겠습니다. [ Contents ] 1. 딕셔너리(Dictionary)란? 딕셔너리 명 = {key1: value1, key2: value2, ...} 딕셔너리는 파이썬에서 기본으로 제공해주는 '해시 맵(Hash map)' 자료형입니다. key-value의 쌍으로 저장되며, key는 책갈피 역할을 합니다. 즉, key를 통해서 value를 찾는 구조입니다. 마치 사전에서 단어(key)를 찾으면, 그 단어에 대한 설명(value)을 볼 수 있는 것과 비슷합니다. 딕셔너리 명[key] 딕셔너리는 인덱스 대신에 'key'를 통해서 'value'에 접근합니다. 만약 key가 없다면, 에러가 발생합니다. 집합과 마찬가지로, key는 중복해서 저장..

[구현/수학] 백준 8871 Zadanie próbne 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8871번: Zadanie próbne 2 Twój program powinien wypisać dwie liczby oddzielone pojedynczym odstępem. Pierwsza liczba to minimalna liczba zadań jaka może pojawić się podczas n rund punktowanych i jednej rundy próbnej w trakcie SKI'10. Druga liczba to maksymalna liczba zada www.acmicpc.net 2. 문제 풀이 문제에 제시된 규정을 읽어야하는 비문학 독해 문제입니다. 해당 사이트의 대회 규정을 살펴보면, 라운드 당 2~3점을 얻을 수 있습니다...

[구현/수학] 백준 24078 余り (나머지, Remainder) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24078번: 余り (Remainder) 正の整数 X が与えられる.X を 21 で割った余りを出力せよ. www.acmicpc.net 2. 문제 풀이 주어진 수를 21로 나눈 나머지를 구하는 문제입니다. 3. 코드 # 입력 x = int(input()) # 출력 print(x%21) 나머지 연산자 %를 사용해서 21로 나눈 나머지를 출력합니다.

[구현/수학] 백준 24082 立方体 (입방체, Cube) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24082번: 立方体 (Cube) 一辺の長さが X cm の立方体の体積が何 cm3 か,単位 (cm3) を省いて出力せよ. www.acmicpc.net 2. 문제 풀이 한 변의 길이가 입력으로 주어집니다. 정육면체의 부피를 구해야 합니다. 3. 코드 # 입력 x = int(input()) # 출력 print(x**3) 정육면체의 부피는 (한 변의 길이)^3입니다.

[암호/AES] 백준 24218 Double Crypt 1 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24218번: Double Crypt 1 You are given ten problem instances in the text files named double1.in to double10.in. Each input file consists of three lines. The first line contains the integer $s$, the second line the plaintext block $p$, and the third line the ciphertext block $c_2$ www.acmicpc.net 2. 문제 풀이 Double AES 암호화된 두 블록을 출력해야 합니다. Double AES에 대한 설명은 문제에 나와있습니다. Doub..

[구현/수학] 백준 24086 身長 (신장, Height) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24086번: 身長 (Height) JOI 君のこの 1 年間の身長の伸びは何 cm であるか,単位 (cm) を省いて出力せよ. www.acmicpc.net 2. 문제 풀이 1년 동안 자란 키를 구하는 문제입니다. 구글 번역기만 있으면 쉬운 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 A = int(input()) B = int(input()) # 출력 print(B-A)

[구현/수학] 백준 22193 Multiply - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 22193번: Multiply Write a program that computes a product of two non-negative integers A and B. The integers are represented in decimal notation and have N and M digits, respectively. www.acmicpc.net 2. 문제 풀이 두 수를 곱하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) a = int(input()) b = int(input()) # 출력 print(a*b) 파이썬에서는 N, M 자릿수..

[구현/수학] 백준 21300 Bottle Return - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 21300번: Bottle Return In the United States, beverage container deposit laws, or so-called bottle bills, are designed to reduce litter and reclaim bottles, cans and other containers for recycling. Ten states currently have some sort of deposit-refund systems in place for differe www.acmicpc.net 2. 문제 풀이 병의 개수를 세고, 1개당 5갤런씩 계산합니다. 병의 종류는 상관 없습니다. 3. 코드 import sys input =..

[구현/수학] 백준 16673 고려대학교에는 공식 와인이 있다 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16673번: 고려대학교에는 공식 와인이 있다 첫 번째 줄에 수빈이가 와인을 모은 년수, 수빈이의 고려대 애착 정도, 수빈이의 구매중독 정도를 의미하는 정수 C, K, P가 공백으로 구분되어 주어진다. (0 ≤ C ≤ 100, 0 ≤ K ≤ 1000, 0 ≤ P ≤ 1 www.acmicpc.net 2. 문제 풀이 N년차 와인의 수: KN + PN^2 1년차부터 C년차까지 산 와인의 수를 구해야 합니다. 3. 코드 import sys input = sys.stdin.readline # 입력 C, K, P = map(int, input().split()) # 출력 res = 0 # 와인 수 for i in range(1, C+1): res += K*i + P*..

[Python] 파이썬 집합(set) 연산 및 메서드 [내부링크]

파이썬 자료형 set의 특성과 연산, 메서드까지 알아보겠습니다. [ Contents ] 1. 집합(set)이란? 집합명 = {원소1, 원소2, ...} 집합은 { } 안에 원소들을 저장합니다. 수학에서의 '집합'과 동일한 특성과 메서드를 가지고 있습니다. 주로 '중복 제거'에 많이 사용합니다. (집합은 중복된 원소가 있을 수 없습니다.) 특이한 점은 '집합'은 원소 간의 순서가 없기 때문에, 인덱스 접근을 할 수 없습니다. 2. 집합(set) 연산 수학에서의 집합 연산을 대부분 제공합니다. | (합집합) A | B: A, B 집합의 원소를 합칩니다. 이때, 중복되는 원소는 제거됩니다. | 기호는 Enter 위 \에 있습니다. - (차집합) A - B: A집합에서 B집합과의 공통 원소를 제거합니다. & (..

[Python] 튜플(Tuple)이란? 튜플 연산과 메서드 [내부링크]

파이썬의 기본 자료형인 '튜플(Tuple)'에 대해서 알아보고, 연산자 및 메서드까지 살펴보겠습니다. [ Contents ] 1. 튜플(Tuple) 튜플명 = (항목1, 항목2, ...) 튜플은 ( ) 안에 데이터를 저장합니다. 리스트와 비슷하지만, 튜플은 값을 변경할 수 없습니다. 이를 immutable(불변) 하다고 하며, 데이터를 안전하게 보관할 수 있습니다. 따라서 리스트처럼 요소를 추가, 삭제, 변경할 수 없습니다. 하지만 동일한 튜플명으로 새로운 값을 대입하는 건 가능합니다. 이런 경우 기존의 튜플 데이터가 사라지니, 주의해야 합니다. 튜플의 항목이 1개일 때도 주의해야 합니다. 그냥 ( )만 하면, 괄호로 오인합니다. 그래서 첫 번째 항목 끝에 ,를 추가해야 튜플로 인식합니다. 2. 튜플 연..

[Python] 리스트 연산 및 메서드 함수 [내부링크]

파이썬 리스트의 연산 및 함수(메서드)를 알아보고, 예제도 함께 살펴보겠습니다. [ Contents ] 1. 리스트 연산 덧셈(+) 리스트 간 덧셈은 확장(expand) 개념으로, 두 리스트를 합쳐줍니다. 덧셈은 리스트끼리만 할 수 있습니다. 곱셈(*) 리스트를 상수배할 수 있습니다. 리스트 * N은 리스트를 N번 반복한다는 뜻입니다. 리스트 간 곱셈은 불가능하며, 리스트와 '상수'만 곱할 수 있습니다. in(항목 확인) 리스트에 해당 항목이 있는지 확인합니다. 있을 경우 True, 없을 경우 False를 반환합니다. 2. 리스트 함수 len() 리스트의 길이를 반환하는 함수입니다. 리스트의 길이는 '항목의 개수'를 뜻합니다. append() 리스트에 항목을 추가하는 메서드입니다. 리스트는 모든 자료형을..

[Brute Force] 백준 1120 문자열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 2. 문제 풀이 두 문자열이 입력으로 주어집니다. 이후 긴 문자열의 길이와 같아질 때까지 짧은 문자열의 앞뒤로 아무 알파벳이나 추가합니다. 길이가 같아졌을 때, 두 문자열의 차이가 최소가 되도록 만들어야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute..

[구현/수학] 백준 2669 직사각형 네개의 합집합의 면적 구하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2669번: 직사각형 네개의 합집합의 면적 구하기 평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으 www.acmicpc.net 2. 문제 풀이 직사각형 네개의 합집합의 면적을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 ..

[동적계획법/DP] 백준 9184 신나는 함수 실행 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 2. 문제 풀이 if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) ..

[탐색/다익스트라] 백준 18352 특정 거리의 도시 찾기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 2. 문제 풀이 X 도시로부터 최단거리가 K인 도시를 찾는 문제입니다. 2022.03.22 - [Algorithm] - [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 다익스트라는 출발지부터 목적지까지의 최적 경로를 탐색해주는..

[Python] 리스트 생성 및 초기화 방법 (feat. 2차원 리스트 초기화) [내부링크]

리스트를 생성하고 초기화하는 방법에 대해서 알아보겠습니다. [ Contents ] 1. 리스트 생성 및 초기화 list = [0] * N 리스트 연산을 이용해서 [0]이 N개인 리스트를 생성할 수 있습니다. range(start, end, stride): start부터 end-1까지, stride 만큼씩 증가하는 수열 range 함수를 이용해서 특정 수열을 생성할 수 있습니다. 보통은 for문에서 많이 사용하나, 리스트 초기화에도 사용할 수 있습니다. stride를 2씩 증가시켜서, 1부터 10까지 중 홀수만 포함된 리스트를 생성할 수도 있습니다. 2. 2차원 리스트 초기화 1차원 초기화와 마찬가지로, 2차원 초기화도 리스트 곱셈을 이용해서 하면 될 거 같습니다. 하지만, 이러한 초기화에는 큰 문제점이 ..

[Python] 리스트(List)란? 리스트 인덱싱(indexing)과 슬라이싱(slicing) [내부링크]

리스트 자료형에 대해 알아보고, 리스트 인덱싱과 슬라이싱을 예제와 함께 살펴보겠습니다. [ Contents ] 1. 리스트(List) 리스트(List): 여러 데이터들을 묶어서 목록화하는 자료형 데이터의 유형 상관없이, 한 곳에 모아서 저장할 수 있는 자료형입니다. C/C++/Java 등 기존 언어의 '배열'과 비슷하지만 매우 다릅니다. 일단 리스트는 인덱스로 접근 가능하지만, 여러 곳에 있는 데이터들을 묶어둔 '연결 리스트'입니다. 배열처럼 연달아서 공간을 할당하지 않습니다. 또한, 데이터 유형에도 구애받지 않습니다. 하나의 자료형만 고집해서 저장할 필요가 없습니다. 리스트 이름 = [ 항목1, 항목2, 항목3, ... ] 리스트 생성은 위 예제처럼, [ ] 대괄호 안에 항목을 ,(콤마)로 구분해서 나..

[Tableau/태블로] 태블로란? 태블로 다운로드 및 온라인 사용법 [내부링크]

태블로는 강력한 데이터 시각화 도구입니다. 쉽고 간단하지만, 활용도가 무궁무진하고 퀄리티도 상당히 좋습니다. 이 글에서는 태블로에 대해서 알아보고, 무료로 설치하고 이용하는 방법을 소개하겠습니다. [ Contents ] 1. 태블로(Tableau) 태블로는 최근 각광받고 있는 데이터 시각화 툴입니다. 코딩 없이, 클릭 & 드래그만으로도 멋있는 시각화 자료를 만들 수 있습니다. 이 때문에 데이터 분석 및 마케팅 쪽에서는 '엑셀'만큼 필수적인 도구가 되었습니다. 많은 기업의 채용 우대사항에서도 '태블로 사용경험'을 볼 수 있으며, 현직자들도 많이 배우는 추세입니다. 하지만, 태블로는 '유료' 프로그램입니다. 따라서 개인도 라이선스 비용을 지불해야 데스크톱 버전을 사용할 수 있습니다. 그렇지만 아예 방법이 없..

[AI/DL] 딥러닝(Deep Learning)이란? 뉴런과 신경망 [내부링크]

AI의 꽃인 딥러닝에 대해 알아보고, 딥러닝의 이론적 토대인 '뉴런'과 '신경망 구조'를 살펴보겠습니다. [ Contents ] 1. 딥 러닝(Deep Learning) 이란? 딥 러닝(Deep Learning): 인간의 뇌(신경망) 구조를 본 떠 만든 머신러닝(기계학습) 알고리즘 딥러닝은 인간의 뇌 구조에서 기인한 알고리즘입니다. 마치 인간이 수많은 뉴런들의 상호작용으로 학습하고 기억하는 것과 같이, 인공신경망을 구성해서 학습하는 방식입니다. 그렇다면, 뉴런과 신경망 구조는 어떻게 생겼을까요? 2. 뉴런과 신경망 뉴런(Neuron, 신경세포)은 일정 자극(역치) 이상의 신호를 받으면 반응하며, 다른 많은 뉴런들과 연결되어 '신경망'을 이룹니다. 수많은 뉴런들이 서로 상호작용하기 때문에 우리는 수많은 기..

[동적계획법/DP] 백준 11057 오르막 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 2. 문제 풀이 길이가 N인 오르막 수를 구하는 문제입니다. 2022.06.02 - [Algorithm] - [DP/동적계획법] 백준 1904 01타일 - 파이썬(Python) DP문제로, 백준 01타일과 비슷합니다. 길이가 i-1인 오르막 수에서, 맨 끝자리보다 같거나 큰 숫자를 덧붙여서 길이가 i인 오르막 수를 만듭니다. 예를 들어 길이가 3이고 맨 끝자리가 2인 오르막 수 c..

[그리디/Greedy] 백준 2847 게임을 만든 동준이 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 2. 문제 풀이 레벨에 따라 오름차순으로 경험지를 설정해야 합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 ..

[자료구조/스택] 백준 3986 좋은 단어 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 2. 문제 풀이 AB가 교대로 짝지어서 나오는 '좋은 단어'를 찾는 문제입니다. 2022.02.10 - [Algorithm] - [자료구조/스택] 백준 4949 균형잡힌 세상 - Python [자료구조/스택] 백준 4949 균형잡힌 세상 - Python [ Contents ] 1. 문제 (링크 참조) 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )")..

[동적계획법/DP] 백준 2294 동전 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 2. 문제 풀이 동전의 개수가 최소가 되도록 만들어야 합니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic progr..

[수학/재귀] 백준 11729 하노이 탑 이동 순서 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 2. 문제 풀이 1) 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다 2) 원판은 위에서부터 꺼내, 1개씩 이동한다 재귀 문제의 대명사, '하노이탑 문제'입니다. 목표 지점까지 '맨 밑의 원판'부터 하나씩 재귀적으로 옮겨야 합니다. 원판이 3개일 때를 예시로 들어보겠습니다. 하노이탑의 규칙에 따라, 목표 막대로 원판을 옮기려면 맨 아랫 원판부터 차근차근 쌓아야 합니다. 그러기 위해서 보조막대..

[AI/RL] 강화학습(Reinforce Learning)이란? 에이전트(Agent)와 정책(Policy), 환경(Environments) [내부링크]

머신러닝 기법 중 하나인, 강화학습에 대해 소개합니다. 강화학습에서 에이전트와 정책, 환경이 무엇을 뜻하는지, 그리고 어떻게 학습하는지를 알아봅니다. [ Contents ] 1. 강화학습이란? 강화학습(Reinforce Learning): 주어진 환경에서 시행착오를 거쳐 최적의 보상을 획득하는 방법(Policy)을 학습 강화학습은 우리가 '운동'을 배우는 것과 비슷합니다. 농구공을 잘 넣기 위해서는, 수많은 시행착오를 거쳐 직접 노하우를 익혀야 합니다. 꾸준한 노력만이 실력을 키울 수 있죠. 강화학습도 이와 마찬가지로, 주어진 환경에서 수많은 시행착오를 거쳐 방법을 터득합니다. 다만, 우월한 컴퓨팅 능력을 통해 굉장히 빠르게 많은 시행착오를 거칩니다. 수도 없이 많은 시뮬레이션을 통해, 컴퓨터는 최적의 ..

[AI/ML] 머신러닝(Machine Learning)이란? 지도학습과 비지도학습 [내부링크]

머신러닝의 정의에 대해 설명하고, 머신러닝의 두 갈래인 '지도학습'과 '비지도학습'에 대해서 알아보겠습니다. [ Contents ] 1. 머신러닝(Machine Learning, 기계학습)이란? 기계학습(Machine Learning): 컴퓨터가 인공지능을 얻기위해 학습하는 알고리즘(방법) AI는 '여러 개의 선택지를 빠르게 탐색하고 비교해서 최적의 안을 내놓는 컴퓨터'라고 볼 수 있으며, 기계학습은 '컴퓨터가 인공지능을 얻기 위해 학습하는 알고리즘'입니다. 즉, 방법론입니다. 머신러닝의 종류에는 크게 3가지 '지도학습'과 '비지도 학습' 그리고 '강화 학습'이 있습니다. 강화 학습은 '컴퓨터가 주어진 환경에서 시행착오를 거치며 최적의 보상을 얻는 방법을 학습하는 방식'으로, 강화 학습 카테고리에서 좀 ..

[브루트포스/수학] 백준 1057 토너먼트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 2. 문제 풀이 계속 이긴다는 보장 하에, 두 사람이 매칭되는 라운드를 구하는 문제입니다. 예를 들어, 2번과 4번은 2라운드에서 만나게 됩니다. 브루트포스 방식으로 완전탐색해서 풀려면, 위와 같이 완전 이진트리를 구성하고 일일이 탐색하면 됩니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, a, b = map(int, input().split()) # 토너먼트 cnt = ..

[이진/이분탐색] 백준 2512 예산 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 2. 문제 풀이 제한된 예산 내에서, 줄 수 있는 최대의 예산을 구하는 문제입니다. 2022.02.10 - [Algorithm] - [정렬/탐색] 백준 2805 나무 자르기 - Python [정렬/탐색] 백준 2805 나무 자르기 - Python [ Contents ] 1. 문제 (링크 참조) 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1..

[Numpy] 넘파이란? Numpy 설치방법과 주의할 점 [내부링크]

Numpy 파이썬 라이브러리를 소개하고, 응용처와 설치방법을 알아봅니다. [ Contents ] 1. Numpy란? 넘파이는 '행렬 연산'에 특화된 라이브러리로, 대규모 다차원 배열을 빠르게 처리합니다. 파이썬 라이브러리지만, 내부는 C언어로 구현되어 있어 연산이 빠릅니다. 행렬 연산이 필요한 데이터 분석이나 AI에서 주로 사용하며, 없어서는 안 될 필수 라이브러리입니다. 넘파이가 있기 때문에 파이썬이 AI/데이터 분석 분야에서 크게 흥행할 수 있었다고 말해도 과언이 아닙니다. 덕분에 비싼 매트랩 라이선스를 이용하지 않고도, 비슷한 성능을 무료로 낼 수 있습니다. 2. Numpy 설치방법 !pip install numpy numpy는 파이썬 모듈이기 때문에, pip으로 설치할 수 있습니다. 다만, num..

[탐색/BFS] 백준 4963 섬의 개수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 2. 문제 풀이 섬의 개수를 세는 문제입니다. 2022.02.23 - [Algorithm] - [탐색/BFS] 백준 1012 유기농 배추 - Python [탐색/BFS] 백준 1012 유기농 배추 - Python [ Contents ] 1. 문제 (링크 참조) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부..

[Tistory] 다크모드로 글 작성 시 주의해야할 점 (feat. Dark Reader) [내부링크]

[ Contents ] 1. 다크 리더(Dark Reader) 저는 다크 모드를 좋아하기 때문에, 'Dark Reader'라는 크롬 확장 프로그램을 사용합니다. 아마도 다크 모드를 좋아하시는 분들이라면, 대부분 쓰지 않을까 싶습니다. CSS코드를 추가해서 다크 모드를 지원하기 때문에, 모든 웹페이지에서 매끄러운 다크 모드를 제공합니다. 하지만, 이걸 글 작성할 때도 사용하면 약간의 문제가 발생합니다. 2. 다크리더 인라인 코드 data-darkreader-inline-color Dark Reader를 켜고, 티스토리 에디터로 작성하면 위와 같은 태그 속성이 그대로 반영됩니다. 오류가 나진 않지만, 필요 없는 코드가 남게 됩니다. 불필요한 태그 속성을 남겨봐야 좋을 게 없습니다. 검색 반영에도 좋진 않겠죠..

[정렬/탐색] 백준 11931 수 정렬하기 4 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 문제 풀이 숫자를 입력받고, 내림차순으로 정렬 후 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) numlist = [] for _ in range(N): numlist.append(int(input())) # 정렬 numlist.sort(reverse=True) # 출력 for i in numlist: ..

[Tistory] 티스토리 5분 만에 다크모드 적용하기 (feat. Dark Reader) [내부링크]

크롬의 확장 프로그램인 다크 리더를 이용해서, 티스토리 다크 모드를 적용합니다. [ Contents ] 1. 다크 리더(Dark Reader) Dark Reader — dark theme for every website Dark mode on all websites. Care your eyes, use Dark Reader for night and daily browsing. For Chrome and Firefox, Edge and Safari. darkreader.org 다크 리더는 '다크 모드'로 만들어주는 크롬 확장 프로그램입니다. 흔히 검은색 배경에 회색 글씨를 다크 모드라고 하며, 눈의 피로를 줄여줍니다. 다크 리더를 이용하면, 어느 사이트든 가독성 있는 다크 모드를 이용할 수 있습니다. 위 ..

[Activity] SW 마에스트로(소마, SOMA) 13기 지원후기 [내부링크]

SW 마에스트로 13기 지원 후기입니다. 소마에 대한 소개와, 지원절차, 후기까지 알아보겠습니다. [ Contents ] 1. SW마에스트로란?

[Activity] SSAFY(싸피, 삼성 청년 SW 아카데미) 7기 지원 후기 [내부링크]

[ Contents ] 1. SSAFY란? 삼성 청년 SW 아카데미 삼성 청년 SW 아카데미| 소프트웨어 교육, 취업 지원, 코딩 교육 www.ssafy.com SSAFY는 'Samsung SW Academy for Youth'의 줄임말로 '삼성 청년 SW 아카데미'라는 뜻입니다. 흔히 '싸피'라고 부르며, SW 교육 프로그램으로 유명합니다. 삼성과 고용노동부가 함께 하는 사업인 만큼, 선발되면 혜택이 풍부합니다. 무료로 참여하실 수 있으며, 오히려 교육지원금을 100만 원씩 받습니다. 거기다가 7기부터는 내일배움카드와 연계해서 정부 장학금도 주는 걸로 알고 있어요. 물론, SW교육의 질도 상당히 좋습니다. 알고리즘 기초부터 웹, DB설계까지 5개월 동안 배우며 1달간 'Job Fair' 기간을 갖습니다..

[자료구조/해시] 백준 7785 회사에 있는 사람 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 2. 문제 풀이 회사에 있는 사람을 역사전순으로 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) company = [] for _ in range(N): man, state = input().rstrip().split() if state == 'enter': company.append(..

[Greedy/그리디] 백준 2217 로프 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 2. 문제 풀이 각 로프가 버틸 수 있는 최대 중량을 구하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '..

[구현/수학] 백준 10974 모든 순열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 순열을 구하는 문제입니다. itertools.permutations(lst, n): lst에서 n개를 뽑는 순열 파이썬의 itertools 라이브러리를 이용해서 순열을 구할 수 있습니다. 라이브러리를 이용하지 않으려면, dfs와 백트래킹을 이용해야 합니다. 3. 코드 from itertools import permutations # 입력 N = int(input()) # 순열 구하기 res = permutations(range(1, N+1), N) # 출력 for perm in res: f..

[구현/수학] 백준 2702 초6 수학 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2702번: 초6 수학 첫째 줄에 테스트 케이스의 개수 T(1

[자료구조/해시] 백준 11652 카드 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 2. 문제 풀이 입력된 숫자의 개수를 세고, 최빈값을 출력하는 문제입니다. 2022.06.15 - [Algorithm] - [자료구조/해시맵] 백준 1302 베스트셀러 - 파이썬(Python) 위 문제의 풀이처럼, 딕셔너리를 구현해서 직접 개수를 셀 수도 있습니다. 이 문제에서는 파이썬의 Counter 함수를 사용해서 풀이하겠습니다. 3. 코드 from collections import Counter impor..

[자료구조/해시맵] 백준 1302 베스트셀러 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 2. 문제 풀이 팔린 책 목록을 입력받고, 가장 많이 팔린 책 제목을 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N = int(input()) book_dict = {} for _ in range(N): book = input().rstrip() # 이미 등록된 책이면 1개 추가 if book in book_dict: book_dict[boo..

[정렬/탐색] 백준 2693 N번째 큰 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net 2. 문제 풀이 10개 수 중 세번째로 큰 수를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 T = int(input()) for _ in range(T): numlist = list(map(int, input().split())) # 정렬 numlist.sort() # 세 번째로 큰 값 출력 print(numlist[7]) 단..

[자료구조/스택] 백준 17413 단어 뒤집기 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 2. 문제 풀이 단어를 뒤집어서 출력하는 문제입니다. 다만, 안 단어는 뒤집으면 안됩니다. 2022.02.28 - [Algorithm] - [구현/수학] 백준 9093 단어 뒤집기 - Python [구현/수학] 백준 9093 단어 뒤집기 - Python [ Contents ] 1. 문제 (링크 참조) 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 ..

[구현/수학] 백준 9076 점수 집계 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9076번: 점수 집계 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 다섯 심판이 준 점수 다섯 개의 정수 Ni(1 ≤ Ni ≤ 10, i = 1, 2, ..., 5)가 하나의 공백을 사이에 두고 www.acmicpc.net 2. 문제 풀이 한국 체조협회의 점수 집계 시스템을 구현하는 문제입니다. 5명의 심판 점수 중 최저점과 최고점을 제외합니다. 그 후의 최고 - 최저점이 4점 이상 차이나면 KIN을 출력하고, 아니면 3명의 점수 합계를 출력합니다. 3. 코드 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): A, ..

[구현/수학] 백준 5361 전투 드로이드 가격 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5361번: 전투 드로이드 가격 각 테스트 케이스 마다, 입력으로 주어진 부품을 모두 구매하는데 필요한 비용을 소수점 둘째 자리까지 출력한다. 달러 표시도 출력해야 한다. 정답은 1억보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 필요한 전투 드로이드 부품의 가격을 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): A, B, C, D, E = map(int, input().split()) print(f'${(A*350.34 + B*230.9 + C*190.55 + D*125.3 + E*180.9):.2f}') $ 달러표시와 함께,..

[Greedy/그리디] 백준 13305 주유소 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 2. 문제 풀이 최소의 주유비용으로 거리를 완주해야하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '3..

[정렬/탐색] 백준 11728 배열 합치기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 2. 문제 풀이 두 배열을 합친 뒤, 정렬하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 N, M = map(int, input().split()) numlist = list(map(int, input().split())) numlist.extend(list(map(int, input().split()))) # 정렬 numl..

[구현/수학] 백준 13241 최소공배수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 2. 문제 풀이 최소 공배수를 구하는 문제입니다. 최소공배수는 '두 수의 곱 / 최대공약수' 입니다. 2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습..

[자료구조/스택] 백준 1406 에디터 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 2. 문제 풀이 L: 커서를 왼쪽으로 한 칸 옮김 D: 커서를 오른쪽으로 한 칸 옮김 B: 커서 왼쪽에 있는 문자 삭제 P $: $ 문자를 커서 왼쪽에 추가 에디터를 구현하는 문제입니다. 단순히 리스트 연산으로 구현가능하지만, 시간제한이 0.3초로 굉장히 짧습니다. 따라서 (연결)리스트의 삭제, 삽입 연산은 사용하면 안됩니다. 그대신, 커서를 기점으로 두 개의 스택으로 나누어서 담으면 해결할 수 있습니다. 2022...

[구현/수학] 백준 2903 중앙 이동 알고리즘 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 2. 문제 풀이 규칙에 따라 점의 개수를 구해야 합니다. 1. 정사각형의 각 변의 중앙에 점을 하나 추가 2. 정사각형의 중심에 점을 하나 추가 문제에 흰점과 검은점이 섞여 있어서 오히려 더 어렵게 보이기도 합니다. 색깔 구분없이 보면, 그저 빽빽하게 점이 채워진 정사각형이 보입니다. 즉, 변의 길이만 알면 점의 개수를 구할 수 있습니다. 처음에는 변의 길이가 2였고, 그 다음은 3, 5로 증가합니다. 다..

[탐색/BFS] 백준 2644 촌수계산 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 2. 문제 풀이 촌수를 계산하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath First S..

[구현/수학] 백준 2921 도미노 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2921번: 도미노 도미노는 여러 종류의 타일 게임에서 사용하는 조각이다. 도미노 조각은 두 칸으로 이루어져 있다. 각 칸에는 점이 찍혀있는데, 점이 안 찍혀져 있을 수도 있다. 점의 개수는 세트의 크기에 의 www.acmicpc.net 2. 문제 풀이 크기가 N인 도미노 세트에 점이 몇 개 있는지 구하는 문제입니다. 크기가 2인 도미노 세트는 12개입니다. 총 6가지 도미노가 나오며, (윗 칸, 아랫 칸)으로 표시하면 다음과 같습니다. (0, 0), (0, 1), (1, 1), (0, 2), (1, 2), (2, 2) 즉, 0, 1, 2 중에서 2개를 뽑을 중복조합의 수와 같습니다. 3. 코드 from itertools..

[구현/수학] 백준 11966 2의 제곱인가? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11966번: 2의 제곱인가? 자연수 N이 주어졌을 때, 2의 제곱수면 1을 아니면 0을 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 주어진 수가 2의 제곱인지 판별하는 문제입니다. 간단한 문제지만 실수하기 쉽습니다. 2의 0제곱인 1도 포함되야 하며, 2의 배수 판별과 혼동하면 안됩니다. 2의 제곱이니, 일일이 2를 곱해가며 확인해야 합니다. 3. 코드 # 입력 N = int(input()) # 2의 제곱 판별 num = 1 while True: # 2의 제곱이면 1 출력 if num == N: print(1) break # 2의 제곱이 아니면 0 출력 elif num > N: print(0) break num *= 2 주..

[DP/동적계획법] 백준 1904 01타일 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 2. 문제 풀이 1과 00의 조합으로 만들 수 있는 길이가 N인 2진 수열의 개수를 구하는 문제입니다. N = 1) 1 => 1개 N = 2) 11, 00 => 2개 N = 3) 111, 001, 100 => 3개 N = 4) 1111, 0011, 1001, 1000, 0000 => 5개 N = 5) 11111, 00111, 10011, 11001, 11100, 00001, 00100, 10000 => 8개 규칙을 잘 ..

[구현/수학] 백준 2959 거북이 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2959번: 거북이 첫째 줄에 거북이가 생각한 네 양의 정수 A, B, C, D가 주어진다. (0 < A, B, C, D < 100) www.acmicpc.net 2. 문제 풀이 거북이가 만들 수 있는 직사각형의 최대 넓이를 구하는 문제입니다. 주어진 정수 네 개가 1, 2, 3, 4일 때, 만들 수 있는 직사각형의 최대 넓이 3입니다. ( 1 * 3 = 3 ) 작은 변을 기준으로 넓이가 결정되기 때문에, 1, 3번째로 작은 변이 사용됩니다. 3. 코드 # 입력 A, B, C, D = sorted(map(int, input().split())) # 가장 큰 직사각형 너비 계산 print(A*C)

[구현/수학] 백준 10178 할로윈의 사탕 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10178번: 할로윈의 사탕 할로윈데이에 한신이네는 아부지가 사탕을 나눠주신다. 하지만 한신이의 형제들은 서로 사이가 좋지않아 서른이 넘어서도 사탕을 공정하게 나누어 주지 않으면 서로 싸움이 난다. 매년 할로윈 www.acmicpc.net 2. 문제 풀이 사탕의 몫과 나머지를 구하는 문제입니다. 3. 코드 # 입력 T = int(input()) for _ in range(T): total, divide = map(int, input().split()) print(f"You get {total//divide} piece(s) and your dad gets {total%divide} piece(s).") 매우 간단한 계산문제입니다. 이런 문제의 경우, 출력형..

[DP/동적계획법] 백준 14501 퇴사 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 2. 문제 풀이 주어진 스케줄 내에서 최대 이익을 구하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic programming, DP): 작은 문제들에 대한 결과를 배열(리스트)에 저장하고, 이를 이용해서 입력 크기가 더 큰 문제를 점진.. star7sss.tistory.com ..

[구현/수학] 백준 1964 오각형, 오각형, 오각형… - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1964번: 오각형, 오각형, 오각형… 첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 2. 문제 풀이 오각형으로 점이 늘어나는 개수를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 점이 늘어나는 규칙을 찾아야 합니다. n = 1: 5 n = 2: 1..

[구현/수학] 백준 3047 ABC - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3047번: ABC 첫째 줄에 세 수 A, B, C가 주어진다. 하지만, 순서는 A, B, C가 아닐 수도 있다. 세 수는 100보다 작거나 같은 자연수이다. 둘째 줄에는 A, B, C로 이루어진 세 글자가 주어지며, 이 순서대로 출력하면 www.acmicpc.net 2. 문제 풀이 세 수를 입력받고, 주어진 순서대로 출력하는 문제입니다. 1) 세 수를 오름차순으로 정렬한 뒤, A B C에 매칭 2) 주어진 순서대로 출력 위 과정을 구현해야 합니다. 3. 코드 # 입력 a, b, c = map(int, input().split()) order = input() # 오름차순 정렬 a, b, c = sorted((a, b, c)) # 순서대로 출력 for i ..

[탐색/BFS] 백준 7562 나이트의 이동 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 2. 문제 풀이 나이트가 몇 번 이동해야 원하는 지점에 도착하는지 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Bre..

[구현/수학] 백준 1834 나머지와 몫이 같은 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1834번: 나머지와 몫이 같은 수 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. www.acmicpc.net 2. 문제 풀이 N으로 나눈 나머지와 몫이 같은 수를 구하는 문제입니다. 완전탐색으로 모든 수를 N으로 나누고 나머지와 몫을 비교하면 시간 초과가 날 뿐더러, 그 끝을 어디로 해야하는지 알 수도 없습니다. 그 대신에 나머지와 몫이 같은 수를 계산할 수는 있습니다. N으로 나눈 몫은 0부터 무한대까지 가능하지만, 나머지는 0 ~ N-1까지로 한정되어 있습니다. 즉, 몫과 나머지가 같은 수는 N개 밖에 ..

[Project] LoL_project: 리그 오브 레전드 승률 예측기 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 데이터 분석 일시: 2021.10. ~ 2021.12. 스택: Pytorch, Python 주제: 리그 오브 레전드(LoL) 실시간 승률 예측 GitHub - jangThang/LoL_project: LoL_Realtime_Winrate_Predictor LoL_Realtime_Winrate_Predictor. Contribute to jangThang/LoL_project development by creating an account on GitHub. github.com 2. 프로젝트 소개 연간 이스포츠(E-sports)의 인기와 규모는 매년 커지고 있습니다. 코로나로 인해 언택트 시대가 도래하고 집에 있는 시간이 많아지면서 게임 및 이스포츠를 즐기고 ..

[구현/수학] 백준 11023 더하기 3 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11023번: 더하기 3 첫째 줄에 N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 또, 0으로 시작하는 수는 주어지지 않는다. www.acmicpc.net 2. 문제 풀이 n개의 숫자를 입력받고, 합을 출력하는 문제입니다. n을 알려주지 않고, 한 줄로 입력되는 수열의 합을 구해야 합니다. 2022.01.24 - [PL (Programming Language)/Python] - [Python] 사용자로부터 여러 입력값 받기 input().split() [feat. 형변환] [Python] 사용자로부터 여러 입력값 받기 input().split() [feat. 형변환] 202..

[탐색/BFS] 백준 14940 쉬운 최단거리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 2. 문제 풀이 모든 지점에서 목표지점까지의 거리를 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Cont..

[Project] Patent Server: 특허 빅데이터 분석 플랫폼 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 특허 분석 플랫폼 일시: 2021.03. ~ 2021.12. 스택: Mongo DB, Django, Ubuntu, AWS 주제: 개인 특허 출원자를 위한 특허 빅데이터 분석 플랫폼 GitHub - jangThang/patent-server: Patent Analyzer server Patent Analyzer server. Contribute to jangThang/patent-server development by creating an account on GitHub. github.com 2. 프로젝트 소개 21세기, 첨단산업의 발전과 급변하는 산업환경에 따라 특허 및 R&D 분야의 중요성은 점점 커지고 있습니다. 지식재산은 지속 가능한 경제성장을 위한 ..

[구현/수학] 백준 2846 오르막길 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2846번: 오르막길 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르 www.acmicpc.net 2. 문제 풀이 최대 오르막길 길이를 구하는 문제입니다. 중간에 높이가 같거나, 낮아지면 오르막길로 인정하지 않습니다. 2 3 3 5 예를 들어, 위와 같은 수열의 최대 오르막길 길이는 '2'입니다. (3 -> 5) 중간에 3 3으로 높이가 동일하기 때문에, 2에서 5까지 오르막길로 인정받지 못합니다. 3. 코드 # 입력 N = int(input()) numlist = list(map(int, input().split()..

[Project] ST Fair Route: 모두가 공평한 네비게이션 앱 [내부링크]

[ Contents ] 1. 프로젝트 개요 분류: 안드로이드 앱 일시: 2021.09. ~ 2021.10. 스택: Java, Android Studio 주제: 장애인, 외국인도 모두 사용할 수 있는 서울과기대 캠퍼스 앱 GitHub - ChoWook/ST-Fair-Route Contribute to ChoWook/ST-Fair-Route development by creating an account on GitHub. github.com 2. 프로젝트 소개 장애인, 외국인, 노인 모두 편하게 사용할 수 있는 내비게이션 앱을 만들고자 했습니다. 영어를 병기해서 외국인도 이용할 수 있고, Zoom in/out을 통해 시력이 좋지 않은 장애인이나 노인분들도 이용할 수 있습니다. 장애인 시설 위치도 표기했으며,..

[구현/수학] 백준 14489 치킨 두 마리 (...) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14489번: 치킨 두 마리 (...) 첫째 줄에 두 통장의 잔고 A와 B가 주어진다. (0 ≤ A, B ≤ 1,000,000,000) 둘째 줄에 치킨 한 마리의 가격 C가 주어진다. (0 ≤ C ≤ 1,000,000,001) www.acmicpc.net 2. 문제 풀이 "치킨이 2개지요..." 문제입니다. 두 통장의 잔고로 치킨 두마리를 살 수 있는지 없는지를 판별해야 합니다. 3. 코드 # 입력 A, B = map(int, input().split()) C = int(input()) # 치킨 구매 가능 if A+B >= C*2: print(A+B-C*2) else: print(A+B)

[구현/수학] 백준 4504 배수 찾기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4504번: 배수 찾기 첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다. www.acmicpc.net 2. 문제 풀이 주어진 수가 n의 배수가 맞는지 아닌지 판별하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss...

[자료구조/리스트] 백준 2605 줄 세우기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net 2. 문제 풀이 뽑은 번호만큼 앞으로 가서 서는 문제입니다. 0부터 앞 사람의 수만큼 번호를 뽑을 수 있으며, 뽑은 번호만큼 앞으로 전진합니다. 입력에는 순서대로 뽑은 번호가 주어지며, 줄은 선 순서를 출력해야 합니다. list.insert(index, n): list의 index 위치에 n을 삽입 파이썬은 연결리스트가 기본 자료구조로 내장되어 있습니다. 따라서 그대로 list 자료구조를 사용하면 됩니다. 뽑은 번호 ..

[브루트포스] 백준 3040 백설 공주와 일곱 난쟁이 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 2. 문제 풀이 9개의 수 중, 합이 100이 되는 7개의 수를 고르는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 ..

[탐색/다익스트라] 백준 11779 최소비용 구하기 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 2. 문제 풀이 최소의 버스비용으로 A에서 B로 이동하는 문제입니다. 최소비용과 경로를 출력해야 합니다. 2022.05.17 - [Algorithm] - [탐색/다익스트라] 백준 1916 최소비용 구하기 - 파이썬(Python) 이전 문제인 '최소비용 구하기'에서, '경로 출력'이 추가되었습니다. 다익스트라 알고리즘으로 최적 거리를 찾은 뒤, 역추적해서 경로를 출력해야 합니다. 202..

[탐색/다익스트라] 백준 1916 최소비용 구하기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 2. 문제 풀이 최소의 버스비용으로 출발지에서 도착지로 이동해야 합니다. 2022.03.22 - [Algorithm] - [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 다익스트라는 출발지부터 목적지까지의 최적 경로를 탐색해주는 알고리즘입니다. 다익스트라의 이론적..

[탐색/다익스트라] 백준 1504 특정한 최단 경로 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 2. 문제 풀이 1번 정점에서 N번 정점으로 가는 최단 거리를 구하는 문제입니다. 단, 정점 v1, v2를 꼭 지나야 합니다. 2022.03.22 - [Algorithm] - [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 다익스트라는 출발지부터 목적지..

[탐색/다익스트라] 백준 1753 최단경로 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 2. 문제 풀이 시작점에서 다른 모든 노드로의 최단 거리를 구하는 문제입니다. 2022.03.22 - [Algorithm] - [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 [Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 다익스트라는 출발지부터 목적지까지의 최적 경로를 탐색해주는 알고리즘입니다. 다익스트라..

[분할정복/DQ] 백준 11444 피보나치 수 6 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11444번: 피보나치 수 6 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 n번째 피보나치 수를 구하는 문제입니다. 본래 피보나치 수열은 동적계획법 DP를 이용해서 효율적으로 구할 수 있지만, 이 문제에서는 최대 n이 1,000,000,000,000,000,000입니다. 아주 큰 수의 피보나치를 빠르게 구하기 위해서는 분할정복을 이용한 '행렬의 거듭제곱'을 사용해야 합니다. 피보나치 규칙을 행렬로 나타내면 아래와 같습니다. 2022.05.10 - [Algorithm] - [분할정복/DQ] 백준 10830 행렬 제곱 - 파이썬(Python) 결국 행렬의..

[Project] Cartpole: DQN, DDQN, Dueling DQN 강화학습 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 강화학습 일시: 2021.05. ~ 2021.06. 스택: OpenAI Gym, Pytorch, Python 주제: DQN, DDQN, Dueling DQN 강화학습 비교 GitHub - jangThang/Cartpole Contribute to jangThang/Cartpole development by creating an account on GitHub. github.com 2. 프로젝트 소개 Cartpole은 강화학습의 기본 예제입니다. 카트 위에 세워둔 막대기를 떨어뜨리지 않고, 카트를 움직이며 오랫동안 버텨야 합니다. Cartpole 강화학습 환경에서, 에이전트는 시행착오를 거치면서 노하우를 터득하게 됩니다. Gym: A toolkit for d..

[Algorithm] 다익스트라(Dijkstra), 지름길의 지름길로 찾는 최적경로 [내부링크]

다익스트라는 출발지부터 목적지까지의 최적 경로를 탐색해주는 알고리즘입니다. 다익스트라의 이론적 설명과 구현 방법, 경로 추적까지 살펴보겠습니다. [ Contents ] 1. 다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra): 현재까지 찾은 최적경로를 바탕으로 목적지까지의 최단경로를 탐색하는 알고리즘 출발지에서 가까운 지점부터 차례대로 최단경로를 탐색하며, 목적지까지의 최단경로를 탐색하는 알고리즘입니다. 그리디 알고리즘 기법으로, 한 번 결정된 최단 경로는 절대 바뀌지 않으며 이를 바탕으로 목적지까지의 최단경로를 계산합니다. 예를 들어, 출발지 A에서 목적지 D까지의 최단경로를 구해봅시다. 다익스트라 알고리즘에서는 A 주변 노드부터 최단거리를 계산하고, 점차 넓혀갑니다. 아직 A와의 거리를..

[수학/소수] 백준 1418 K-세준수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1418번: K-세준수 첫째 줄에 N, 둘째 줄에 K가 주어진다. N은 100,000보다 작거나 같은 자연수이고, K는 100보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 N 이하 자연수 중에서 소인수의 최댓값이 K보다 작은 수들의 개수를 구하는 문제입니다. N: 10, K: 3일 때, 10이하의 자연수 중 소인수가 3보다 작은 수들의 개수는 7입니다. 숫자 1 2 3 4 5 6 7 8 9 10 최대 소인수 x 2 3 2 5 3 7 2 3 5 위 예제에서 5, 7, 10은 3보다 큰 소인수를 갖고 있습니다. 따라서 K-세준수는 7개입니다. 2022.02.08 - [Algorithm] - [Algorithm] 소수 판별 알고리즘,..

[구현/수학] 백준 1434 책 정리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1434번: 책 정리 첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BM이 주어진다. www.acmicpc.net 2. 문제 풀이 1. 현재 책이 현재 박스에 들어가지 않으면, 3번으로 간다. 아니면 2번으로 간다. 2. 현재 책을 현재 박스에 넣는다. 다음 책을 손에 집고 1번으로 간다. 3. 현재 박스를 다른 쪽으로 치운 다음에, 테이프로 못 열게 봉인한다. 다음 박스를 앞으로 가져오고 1번으로 간다. 책을 박스에 보관할 때, 낭비되는 박스 용량을 구하는 문제입니다. 다국어 문제라서 번역이 조금 어색합니다. 위 로직을 조금 쉽게 풀어쓰면 아래와..

[탐색/백트래킹] 백준 9663 N-Queen - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 가로 세로 대각선에 겹치지 않게 N개의 퀸을 놓는 가짓수를 구하는 문제입니다. 2022.03.20 - [Algorithm] - [Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 [Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 DFS 탐색 중 가능성이 없는 방향은 가지 않는 '백트래킹' 기법에 대해서 알아보겠습니다. [ Contents ] 1...

[Algorithm] 백트래킹(Backtracking): 안될 싹은 미리미리 가지치기 [내부링크]

DFS 탐색 중 가능성이 없는 방향은 가지 않는 '백트래킹' 기법에 대해서 알아보겠습니다. [ Contents ] 1. DFS 2022.02.23 - [Algorithm] - [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 DFS는 인접노드가 없을 때까지, 끝까지 탐색하는 알고리즘입니다. 스택을 이용한 DFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. DFS(Depth First Search) 깊이 우선 탐색(DFS): 방문하지 않은 인접. star7sss.tistory.com 깊이 우선 탐색(DFS): 방문하지 않은 인접 노드가 없을 때까지 탐색하여 한 곳씩 마무리하는 방식 DFS는 끝이 나올..

[구현/수학] 백준 2740 행렬 곱셈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 2. 문제 풀이 두 행렬의 곱을 구하는 문제입니다. 크기가 N*M인 A행렬과 크기가 M*K인 B행렬의 곱은 N*K입니다. 행렬의 곱은 A행렬의 열과 B행렬의 행이 같아야만 할 수 있고, 문제에서는 M이 고정이므로 이 점은 고려하지 않아도 됩니다. for i in range(N): for j in range(K): for z in range(M): # c11 = a11*b11 + a12*b21 re..

[분할정복/DQ] 백준 10830 행렬 제곱 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 문제 풀이 행렬 A의 B 거듭제곱을 구하는 문제입니다. 행렬의 곱셈은 위와 같이 행과 열의 곱으로 이루어집니다. 반복문으로 구현하려면 무려 3중 for문을 써야 합니다. (O(n^3)) 따라서 계속 A를 곱하는 방법으로는 당연히 시간초과가 납니다. 2022.05.08 - [Algorithm] - [분할정복/재귀] 백준 1629 곱셉 - 파이썬(Python) 그 대신 A^B제곱을 A가 될 때까지 둘로 나눈다음, 다시 곱해주면 ..

[동적계획법/DP] 백준 12865 평범한 배낭 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 문제 풀이 제한된 배낭 용량에 최대한 가치있는 물건들을 채우는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programmin..

[분할정복/재귀] 백준 1629 곱셈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 2. 문제 풀이 효율적으로 거듭제곱을 구하는 문제입니다. 단순히 A**B를 하면 시간 초과가 납니다. 2022.01.29 - [Algorithm] - [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 각개격파(各個擊破): 적을 하나하나 따로 떼어 무찌름 유독 외세의 침략을 많이 받았던 우리 민족의 대표적인 전술은 '매복'과 '각개격파'였습니다. ..

[수학/그리디] 백준 14659 한조서열정리하고옴ㅋㅋ - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이 www.acmicpc.net 2. 문제 풀이 뒤에 자신보다 낮은 봉우리가 있으면 죽일 수 있습니다. 한 사람이 최대 몇 명을 죽일 수 있는지 구해야 합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼..

[수학/그리디] 백준 14720 우유 축제 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후 www.acmicpc.net 2. 문제 풀이 딸기 - 초코 - 바나나 순으로 우유를 먹은 횟수를 구하는 문제입니다. 순서에 맞는 우유가 왔을 때, 먹는 것이 최선이기 때문에 직관적으로 해결할 수 있습니다. 3. 코드 # 입력 N = int(input()) store = list(map(int, input().split())) # 우유 먹방 order = 0 res = 0 # 먹은 우유 갯수 for milk in store: if milk == or..

[AI/인공지능] 인공지능이란? AI산업의 전망과 현실 [내부링크]

1차 산업혁명은 '증기기관', 2차 산업혁명은 '내연기관과 전기', 3차 산업혁명은 '인터넷과 컴퓨터'였습니다. 그리고 21세기는 제4차 산업혁명의 시초로, 우리는 현재 'AI와 빅데이터' 시대에 살고 있습니다. 이 글에서는 인공지능에 대해 알아보고, 관련 산업의 전망과 현실을 살펴보겠습니다. [ Contents ] 1. 인공지능(Artificial Intelligence) 인공지능: 여러 가지의 선택지를 빠르게 탐색하고, 비교해서 최적의 안을 내놓는 컴퓨터(프로그램) 인공지능은 인공으로 만들어진 지능입니다. 그렇다면 '지능'이 무엇일까요? Intelligence의 어원을 살펴보면, Inter(사이에서)와 legere(고르다)라는 라틴어의 합성어라고 합니다. 즉, "여러 개 중 적절한 것을 선택"한다는 ..

[Project] Patent Big Data Analysis: 자연어 처리를 이용한 특허문서 분석 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 데이터 분석 일시: 2020.10. ~ 2020.12. 스택: Apache Spark, Scala 주제:자연어 처리를 이용한 특허문서 분석 GitHub - jangThang/Patent_BigDataAnalysis Contribute to jangThang/Patent_BigDataAnalysis development by creating an account on GitHub. github.com 2. 프로젝트 소개 대한민국은 GDP-인구 대비 특허출원 세계 1위로, 개인 특허 출원건수가 2002년 대비 6배나 증가했습니다. 여기서 '특허 출원'이란, 특허를 등록하기 위해 신청하는 걸 뜻합니다. 하지만 개인 특허 출원인은 '유사특허'로 인해 등록이 반려되는..

[구현/수학] 백준 11660 구간 합 구하기 5 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 2. 문제 풀이 2차원 행렬의 구간 합을 구하는 문제입니다. 2022.02.14 - [Algorithm] - [구현/수학] 백준 11659 구간 합 구하기 4 - Python [구현/수학] 백준 11659 구간 합 구하기 4 - Python [ Contents ] 1. 문제 (링크 참조) 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M..

[탐색/BFS] 백준 16953 A → B - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 2. 문제 풀이 1) A*2 2) A*10 +1 2가지 연산을 최소로 사용해서 A를 B로 만드는 문제입니다. 2022.03.19 - [Algorithm] - [탐색/BFS] 백준 9019 DSLR - 파이썬(Python) BFS 탐색문제로, DSLR 문제와 비슷합니다. B를 넘어서기 전까지 2가지 연산을 수행하다가 B가 되면 탐색을 종료합니다. 만약 모든 경우의 수를 탐색했는 데도 B가 되지 않는다면 -1를 출력합니다. 3. 코드 from collections import deque # 입력 A, B = map(int, input().spl..

[탐색/DFS] 백준 11725 트리의 부모 찾기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 주어진 트리의 루트를 1이라고 했을 때, 각 노드의 부모를 구해야 합니다. 예제 입력 1번을 살펴보겠습니다. 트리의 루트를 1번으로 했을 때, 정렬하면 오른쪽과 같습니다. 사실 보기 좋게 만들기 위해서 오른쪽으로 정렬해둔 것이지, 컴퓨터 입장에서는 둘 다 같습니다. 2022.02.23 - [Algorithm] - [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 DFS는 인접..

[탐색/플로이드] 백준 11404 플로이드 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 2. 문제 풀이 플로이드 알고리즘을 이용해서 최단경로를 탐색하는 문제입니다. 2022.02.28 - [Algorithm] - [Algorithm] 플로이드-와샬, 모든 쌍의 최적경로 구하기 [Algorithm] 플로이드-와샬, 모든 쌍의 최적경로 구하기 모든 쌍의 최단 경로를 '플로이드 - 와샬' 알고리즘으로 구하는 방법을 알아보고, 구현 코드도 살펴보겠습니다. [ Contents ] 1. 모든 쌍의 최단 경로 위 ..

[구현/수학] 백준 12813 이진수 연산 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 12813번: 이진수 연산 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 이진수 A, B를 [and, or, xor, not A, not B] 연산하는 문제입니다. 2022.01.24 - [PL (Programming Language)/Python] - [Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting) [Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting) 2022.01.23 - [PL (Programming Language)/Python] - [Python] 변수..

[구현/수학] 백준 8741 이진수 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 8741번: 이진수 합 첫째 줄에 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 이진수로 출력한다. www.acmicpc.net 2. 문제 풀이 이진수의 k자리 이하인 모든 자연수의 합을 이진수로 출력하는 문제입니다. 예를 들어, 3자리 이하인 이진수는 001, 010, 011, 100, 101, 110, 111로 모두 7가지입니다. 000은 0으로 자연수가 아니므로 제외됩니다. 이를 경우의 수로 따져보면, 각 자릿수는 0 또는 1이 올 수 있으므로 2^k 이고 0을 제외하면 2^k -1이 됩니다. 등차가 1인 수열의 합: n * (n+1) / 2 1부터 2^k -1까지의 합은 등차수열의 합 공식을 이용하면 쉽게 구할 수 있습니다. 3. 코드 k..

[구현/수학] 백준 14656 조교는 새디스트야!! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14656번: 조교는 새디스트야!! 첫 번째 줄에 헌우네 반 학생의 수 N이 주어진다. (1 ≤ N ≤ 20,000) 두 번째 줄에 학생들의 번호가 현재 줄을 서있는 순서대로 주어진다. (1 ≤ 번호 ≤ N) 중복되는 번호는 없다. www.acmicpc.net 2. 문제 풀이 순서에 맞지 않은 위치에 서 있는 사람을 골라내는 문제입니다. index: 1 2 3 4 5 num: 3 2 5 4 1 위 경우, 순서에 맞지 않은 사람은 3명입니다. 3. 코드 import sys input = sys.stdin.readline # 입력 n = int(input()) numlist = list(map(int, input().split())) # 순서 안 맞는 사람 골..

[구현/수학] 백준 10996 별 찍기 - 21 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10996번: 별 찍기 - 21 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 2. 문제 풀이 예제 입출력을 보고 패턴을 파악하는 문제입니다. 먼저 별의 높이부터 살펴봅시다. 맨 처음 n = 1일 때는 별이 1개입니다. 그 이후로 4, 6, 8로 2씩 증가합니다. 또, 홀수층은 공백 없이 시작하고 짝수층은 공백 후에 시작합니다. 별은 n이 1씩 커질 때마다, 홀수층이 먼저 늘어나고 그 뒤에 짝수층이 늘어납니다. 솔직히 예제만 보고 패턴을 파악하긴 어렵습니다. 추가로 5, 6일 때도 살펴보면 패턴이 더 확실하게 보입니다. 3. 코드 n = int(input()) for _ in range(n): print('* '*(n - ..

[구현/수학] 백준 2163 초콜릿 자르기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿 www.acmicpc.net 2. 문제 풀이 N*M 크기의 초콜릿이 주어질 때, 1*1 크기로 쪼개는 최소 횟수를 구하는 문제입니다. 1) 가로로 먼저 자르고 세로로 자르기: (M-1) + M*(N-1) = N*M - 1 2) 세로로 먼저 자르고 가로로 자르기: (N-1) + N*(M-1) = N*M - 1 초콜릿을 자르는 방법은 위 2가지입니다. 개인적으로 더 짧은 쪽으로 먼저 자르면 횟수가 줄어들 줄 알았는데, 결과는 똑같았습니다. ..

[구현/수학] 백준 1010 다리 놓기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 2. 문제 풀이 다리를 놓을 수 있는 경우의 수를 구하는 문제입니다. 다리를 겹쳐서 놓지는 못하며, 강 서쪽(N)보다 강 동쪽(M)에 다리를 놓을 수 있는 장소가 항상 많습니다. 어렵게 생각하면 끝도 없이 어렵지만, 단순하게 생각하면 쉽습니다. 강 동쪽에서 1, 3, 6, 7번에 다리를 놓는다고 합시다. 그러면 강 서쪽은 어떻게 될까요? 위와 같은 경우, 단 1가지 밖에 없습니다. N개의 다리를 놓아야 하며, 서로..

[동적계획법/DP] 백준 1932 정수 삼각형 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 2. 문제 풀이 위와 같은 정수삼각형이 입력으로 주어집니다. 맨 위층부터 아래층까지 수를 합하며, 위와 같이 맞닿은 아랫층 숫자만 더할 수 있습니다. (대각선 왼쪽 혹은 오른쪽에 있는 수) 위 예제에서는 7 + 3 + 8 + 7+ 5 = 30이 가장 큰 수입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동..

[동적계획법/DP] 백준 1912 연속합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 문제 풀이 연속된 수들의 합 중 가장 큰 값을 출력하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic programming, DP): 작은 문..

[Project] SNUT RoadSign: SeoulTech 길찾기 프로그램 [내부링크]

[ Project ] 1. 프로젝트 개요 분류: 맵 애플리케이션 일시: 2020.05. ~ 2020.06. 스택: Java 주제: 서울과학기술대학교 내 길찾기를 도와주는 프로그램 제작 GitHub - jangThang/SNUT_RoadSign Contribute to jangThang/SNUT_RoadSign development by creating an account on GitHub. github.com 2. 프로젝트 소개 '서울과학기술대학교'는 52만 (15.4만 평)의 캠퍼스 부지를 갖고 있습니다. 서울 소재 대학교 중에서 5번째로 넓습니다. 건물도 45 여개로 무척이나 많으며, 저 역시 졸업생이지만 모르는 건물들이 많습니다. 이렇게 학교가 넓다 보니, 외부인 및 신입생들은 길 찾기가 매우 어..

[Project] Seoultech Explore: 모교 홍보를 위한 웹 게임(퀴즈) [내부링크]

[ Projects ] 1. 프로젝트 개요 분류: 웹 게임(퀴즈) 일시: 2019.04. ~ 2019.06. 스택: HTML5, CSS, JavaScript 주제: '퀴즈' 컨텐츠를 활용한 효과적인 '모교(서울과학기술대학교)' 홍보 GitHub - jangThang/Seoultech_Explore Contribute to jangThang/Seoultech_Explore development by creating an account on GitHub. github.com 2. 프로젝트 소개 '서울과학기술대학교'는 유일한 서울 국립대학교입니다. 학교 발전가능성 및 역량에 비해, 인지도가 낮은 문제점을 해결하고자 해당 프로젝트를 진행했습니다. Seoultech Explore는 서울과학기술대학교에서 일어나는 ..

[동적계획법/DP] 백준 1149 RGB거리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 2. 문제 풀이 옆집과 색이 같지 않도록 최소의 비용으로 색을 칠하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic..

[구현/수학] 백준 1402 아무래도이문제는A번난이도인것같다 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1402번: 아무래도이문제는A번난이도인것같다 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. www.acmicpc.net 2. 문제 풀이 A = a1 * a2 ... * an B = a1 + a2 ... + an A가 B가 될 수 있는지 판별하는 문제입니다. 단순히 A를 소인수분해한 다음에, 조합해서 B가 되는지 찾아볼 수 있습니다. 하지만, a가 1 또는 -1이 아니라는 보장이 없습니다. 단순히 1과 -1의 조합으로 어떤 B라도 만들 수 있으며, 어떤 테스트케이스이든 yes가 됩니다. 3. 코드 import sys input = sys.stdin..

[구현/수학] 백준 11816 8진수, 10진수, 16진수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11816번: 8진수, 10진수, 16진수 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다. www.acmicpc.net 2. 문제 풀이 주어진 8진수, 10진수, 16진수를 10진수로 변환하는 문제입니다. int(n, base=m): m진수인 n을 10진수로 변환 int() 함수를 이용하면 쉽게 해결할 수 있습니다. 3. 코드 x = input() # 10진수 1의 자리 if len(x) == 1: print(x) # 16진수 elif x[0:2] == '0x': print(int(x[2:], 16)) # 8진수 elif x[0] == '0': prin..

[구현/수학] 백준 1252 이진수 덧셈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1252번: 이진수 덧셈 첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다. www.acmicpc.net 2. 문제 풀이 두 이진수를 입력받아 덧셈한 결과를 출력하는 문제입니다. num = 0 digit = 0 # 이진수 => 십진수 변환 for i in N[::-1]: num += int(i)*(2**digit) digit += 1 res = '' # 십진수 => 이진수 변환 while num != 0: res = str(num%2) + res num //= 2 print(res) 십진수 2진수 변환 규칙대로 코드를 구현하면 ..

[구현/수학] 백준 10829 이진수 변환 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net 2. 문제 풀이 10진수를 2진수로 변환하는 문제입니다. res = '' # 십진수 => 이진수 변환 while num != 0: res = str(num%2) + res num //= 2 print(res) 원리원칙대로 10진수를 2진수를 변환하는 코드는 위와 같습니다. 2로 나눈 나머지를 거꾸로 세어주면 2진수가 되죠. bin(n): 10진수 n을 2진수로 변환 하지만, 파이썬에는 이진수로 변환해주는 bin() 함수가 있습니다. bin() 함수로 한 줄로 풀이할 수도 있습니다. 3. 코드 print(bin(int..

[동적계획법/DP] 백준 1699 제곱수의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 2. 문제 풀이 가장 적은 제곱수의 합으로 N을 구하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynam..

[정렬/탐색] 백준 3273 두 수의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 2. 문제 풀이 서로 다른 양수로 이루어진 수열에서 두 수를 뽑아 X가 되는 경우를 찾는 문제입니다. 1 2 4 6 7 8 10 s e 오름차순으로 정렬하고, 양 끝을 가리키는 포인터를 이용해서 X를 탐색합니다. start 포인터는 0번부터 시작해서 +1씩 증가하고, end 포인터는 n-1번부터 시작해서 -1씩 감소합니다. list[start] + list[e..

[정렬/탐색] 프로그래머스 K번째 수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 2. 문제 풀이 주어진 배열의 일정 범위 내 K번째 수를 구하는 문제입니다. sorted(lst): lst 내 원소를 오름차순으로 정렬 파이썬의 sorted() 함수를 이용하면 쉽게 구할 수 있습니다. 3. 코드 def solution(array, commands): answer = [] for i, j, k in commands: answer.append(sorted(array[i-1:j])[k-1]) return answer sorted() 함수를 사용해서 해당 범위의 배열을 ..

[DP/동적계획법] 백준 11054 가장 긴 바이토닉 부분 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 2. 문제 풀이 가장 긴 바이토닉 부분 수열을 구하는 문제입니다. [ 1 3 2 1 4 2 2 1 ] => [ 1 2 4 2 1 ] 바이토닉 부분 수열은 '증가수열 + 감소수열'의 형태로, 증가하다가 감소하는 수열입니다. 유의할 점은 증가 수열 또는 감소 수열만 있어도 바이토닉 부분 수열입니다. 굳이 꼭 증가하다 감소하진 않아도 됩니다. 2022.04.12 - [Algorithm] - [DP/동적계획법] 백준 11053 가장 긴 증가하..

[DP/동적계획법] 백준 14002 가장 긴 증가하는 부분 수열 4 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 문제 풀이 가장 긴 증가 수열을 찾는 문제입니다. 중간에 작은 숫자가 끼어 있어도 무시할 수 있습니다. 2022.04.12 - [Algorithm] - [DP/동적계획법] 백준 11053 가장 긴 증가하는 부분 수열 - 파이썬(Python) 가장 긴 증가 부분 수열을 찾는 방법은 위 문제에서 찾았습니다. 해당 부분은 위 링크를 참..

[DP/동적계획법] 백준 11722 가장 긴 감소하는 부분 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 2. 문제 풀이 가장 길게 감소하는 부분 수열을 찾는 문제입니다. 중간에 이전 원소보다 큰 원소가 나와도, 무시하고 진행할 수 있습니다. 10 30 5 10 25 10 예를 들어, 위 수열은 [30, 25, 10]이 가장 긴 감소수열입니다. 2022.04.12 - [Algorithm] - [DP/동적계획법] 백준 11053 가장 긴 증가하는 ..

[DP/동적계획법] 백준 11055 가장 큰 증가 부분 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 2. 문제 풀이 가장 큰 '증가 부분 수열의 합'을 구하는 문제입니다. 1, 5, 3, 20, 13, 100 예를 들어, 위 수열에서 합이 가장 큰 증가 수열의 합은 1+3+20+100 = 124입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불..

[DP/동적계획법] 백준 11053 가장 긴 증가하는 부분 수열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 문제 풀이 가장 긴 증가 수열을 찾는 문제입니다. 단, 중간에 작은 원소가 있어도 무시할 수 있습니다. 10 20 10 30 20 50 예를 들어, 위 수열의 '가장 긴 증가 수열'은 [ 10, 20, 30, 50 ] 입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로..

[Brute Force] 백준 15665 N과 M (11) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑을 중복순열을 구하는 문제입니다. itertools.product(lst, repeat=n): lst에서 n개를 중복해서 뽑을 순열 3. 코드 from itertools import product N, M = map(int, input().split()) numlist = list(map(int, input().split())) case = sorted(set(produc..

[Brute Force] 백준 15664 N과 M (10) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 조합을 구하는 문제입니다. 단, 각 조합은 오름차순으로 출력되어야 합니다. itertools.combinations(lst, n): lst에서 n개를 뽑는 조합 itertools 라이브러리의 combinations 함수를 이용하면 쉽게 구할 수 있습니다. 3. 코드 from itertools import combinations N, M = map(int, input()..

[Brute Force] 백준 15663 N과 M (9) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 순열을 구하는 문제입니다. 다만, 중복되는 순열을 여러 번 출력해선 안됩니다. itertools.permutations(lst, n): lst에서 n개를 뽑는 순열 위 함수를 사용하면 쉽게 순열을 구할 수 있습니다. 주어진 수열에서 순열을 구하고, 중복되는 순열만 set으로 제거해줍니다. 3. 코드 from itertools import permutations N, M ..

[Brute Force] 백준 15656 N과 M (7) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 중복순열을 구하는 문제입니다. 중복순열은 itertools.product() 함수를 이용해서 쉽게 구할 수 있습니다. itertools.product(lst, repeat=n): lst에서 n개를 중복 허용해서 뽑는 순열 3. 코드 from itertools import product N, M = map(int, input().split()) numlist = l..

[Brute Force] 백준 15655 N과 M (6) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 조합을 구하는 문제입니다. itertools.combinations(lst, n): lst에서 n개를 뽑는 조합 itertools 라이브러리의 combinations() 함수를 사용하면 쉽게 구할 수 있습니다. 3. 코드 from itertools import combinations N, M = map(int, input().split()) numlist = li..

[Brute Force] 백준 15651 N과 M (3) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 수열에서 M개를 뽑는 중복 순열을 구하는 문제입니다. 중복 순열은 itertools의 product() 함수를 이용해서 구할 수 있습니다. 3. 코드 from itertools import product N, M = map(int, input().split()) case = product(range(1, N+1), repeat=M) for i in case: for j in i: print(j, e..

[Brute Force] 백준 15659 N과 M (1) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 1부터 N까지의 수열 중 M개를 뽑는 순열을 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로..

[Brute Force] 백준 15666 N과 M (12) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 중복 조합을 구하는 문제입니다. 단, 수열에는 같은 숫자가 들어갈 수 있으며, 중복되는 수열을 여러 번 출력해서는 안됩니다. 2022.04.03 - [Algorithm] - [Brute Force] 백준 15657 N과 M (8) - 파이썬(Python) 주어진 수열에서 M개의 중복조합을 구하는 N과 M (8) 문제와 유사합니다. 다만, 이번 문제에서는 수열에 동일한 ..

[Brute Force] 백준 15657 N과 M (8) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑는 중복 조합을 구하는 문제입니다. 2022.04.01 - [Algorithm] - [Brute Force] 백준 15652 N과 M (4) - 파이썬(Python) 위 문제에서 '수열'을 입력받는 것만 추가되었습니다. 동일하게 itertools.combinations_with_replacement() 함수를 이용해서 쉽게 풀 수 있습니다. 3. 코드 from ite..

[Brute Force] 백준 15654 N과 M (5) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 2. 문제 풀이 주어진 수열에서 M개를 뽑은 순열을 구하는 문제입니다. 2022.03.31 - [Algorithm] - [Brute Force] 백준 15650 N과 M (2) - 파이썬(Python) 조합을 구했던 N과 M (2) 문제와 유사합니다. 백트래킹을 쓰지 않고도 itertools 라이브러리를 이용해서 브루트 포스로 풀 수 있습니다. 3. 코드 from itertools import permuta..

[Brute Force] 백준 15652 N과 M (4) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 길이가 N인 수열에서 중복을 허용해서 M개 뽑는 조합을 구하는 문제입니다. 2022.03.31 - [Algorithm] - [Brute Force] 백준 15650 N과 M (2) - 파이썬(Python) 이전 N과 M(2) 문제와 달리, '중복을 '허용'해서 조합을 구해야 합니다. 3. 코드 from itertools import..

[Brute Force] 백준 15650 N과 M (2) - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 풀이 길이 N의 수열에서 M개를 뽑아 만들 수 있는 조합을 출력하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸..

[구현/수학] 백준 5086 배수와 약수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 2. 문제 풀이 주어진 두 수가 서로의 배수 혹은 약수인지 판별하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.ti..

[자료구조/큐] 백준 1021 회전하는 큐 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 2. 문제 풀이 1번 연산) 첫 번째 항목 꺼내기 2변 연산) 왼쪽으로 한 칸씩 이동 3번 연산) 오른쪽으로 한 칸씩 이동 회전하는 큐를 구현하고, 2 또는 3번 연산을 최소로 사용해서 특정 항목을 꺼내는 문제입니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [ Contents..

[구현/수학] 백준 1002 터렛 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 2. 문제 풀이 두 개의 터렛의 위치(x, y)와, 각각 자신의 반경(r)에서 얼마만큼 마린이 떨어져 있는지 알려줍니다. 즉, 두 원(감시 반경)이 만나는 지점의 수를 구해야 합니다. 경우의 수는 크게 3가지입니다. 두 점이 만나는 경우와, 한 점에서 만나는 경우, 그리고 동심원이라서 무한대로 만나는 경우입니다. 하지만 문제의 예제입력을 보면, 위와 같은 경우도 있습니다... 즉 터렛에서 계산한 마린까지의 거리가 정확하지 않으며, 두 터렛이 전혀 다르게 예측할 수 있..

[Brute Force] 백준 10448 유레카 이론 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10448번: 유레카 이론 프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어 www.acmicpc.net 2. 문제 풀이 Tn = 1 + 2 + 3 + 4 ... + n = n(n+1)/2 등차가 1인 수열의 합으로 표현되는 수를 '삼각수'라고 합니다. 정수 K가 주어졌을 때, 세 삼각수의 합으로 표현할 수 있는지를 판별해야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는..

[구현/해시] 백준 1076 저항 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다. www.acmicpc.net 2. 문제 풀이 3가지 색이 주어집니다. 처음 두 색은 저항의 값이고, 마지막 색은 곱해야 하는 값입니다. 위 표대로 저항 값을 계산해야 합니다. 3. 코드 #입력 c1 = input() c2 = input() c3 = input() color = {'black': 0, 'brown': 1, 'red': 2, 'orange': 3, 'yellow': 4, 'green': 5, 'blue': 6, 'violet': 7, 'grey': 8, 'white': 9} print((color[c1..

[구현/수학] 백준 2003 수들의 합 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 2. 문제 풀이 1부터 N까지 연속된 자연수의 수열에서 부분 합이 M인 구간의 수를 구하는 문제입니다. 2022.02.14 - [Algorithm] - [구현/수학] 백준 11659 구간 합 구하기 4 - Python [구현/수학] 백준 11659 구간 합 구하기 4 - Python [ Contents ] 1. 문제 (링크 참조) 11659번: 구간 합 구하기 4 첫째 줄에..

[탐색/BFS] 백준 16236 아기 상어 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 2. 문제 풀이 아기 상어가 먹을 수 있는 먹잇감을 모두 먹는 데에 걸리는 시간을 구하는 문제입니다. 자신보다 작은 물고기만 먹을 수 있고, 크기 2부터 시작합니다. 자신보다 큰 물고기는 통과할 수 없으며, 자신과 동일한 크기면 통과할 수 있습니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS..

[구현/수학] 백준 2167 2차원 배열의 합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 2. 문제 풀이 2차원 배열의 합을 구하는 문제입니다. (i, j)부터 (x, y)까지 '직사각형' 범위의 합만 구합니다. 1 2 3 4 5 6 (1, 3)부터 (2, 3)까지의 합은 9 (3+6) (1, 3)부터 (2, 3까지의 합이 (1, 3) + (2, 1) + (2, 2) + (2, 3)이 아닙니다. 3. 코드 import sys input = sys.stdin.readline ..

[자료구조/큐] 백준 18258 큐 2 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 2. 문제 풀이 자료구조 큐(Queue)를 구현하는 문제입니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [ Contents ] 1. 큐(Queue) 큐(Queue): 선입선출(First-in-First-out), 가장 먼저 들어간 자료부터 꺼내는 자료구조 ..

[수학/그리디] 백준 1049 기타줄 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 2. 문제 풀이 M개의 브랜드 제품의 '하나 가격'과 '6개 가격'이 주어질 때, N개를 구입하는 데에 필요한 최소 비용을 구하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 ..

[탐색/Brute Force] 백준 1107 리모컨 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 2. 문제 풀이 100번에서 원하는 채널(N)로 전환하기위해 리모컨 버튼을 눌러야 합니다. 위아래로 이동할 수 있는 화살표와 0~9번까지의 버튼이 있습니다. 이 중 숫자버튼 일부가 고장났을 때, 눌러야 할 버튼의 최소 횟수를 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(..

[탐색/BFS] 백준 9019 DSLR - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 2. 문제 풀이 D: (N*2) % 10000 S: N-1, 단 0이면 9999 L: 왼쪽으로 회전 R: 오른쪽으로 회전 최소의 DSLR 연산으로 A가 B가 되도록 만드는 문제입니다. 개인적으로 DP로도 풀 수 있을 거 같은데, 중복되는 수가 많이 안 나올 거 같아서 효율은 보장 못하겠네요. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터..

[구현/문자열] 백준 2495 연속구간 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2495번: 연속구간 여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을 www.acmicpc.net 2. 문제 풀이 같은 숫자가 연속해서 나오는 최대 길이를 구하는 문제입니다. 이전 글자와 같은지 판별한 뒤, 연속 횟수를 세주면 됩니다. 3. 코드 #입력 for _ in range(3): s = input() len_max = 0 #가장 긴 길이 cnt = 1 #같은 숫자가 나온 횟수 for i in range(1, len(s)): #전과 같으면 +1, 다르면 1로 초기화 if s[i-1] == s[i]: cnt +=..

[자료구조/큐] 백준 5430 AC - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 2. 문제 풀이 1) R: 정수배열 뒤집기 2) D: 첫 번째 수 버리기 (단, 빈 배열이면 Error) 두 연산을 수행하는 자료구조를 만들어야 합니다. 배열의 크기가 최대 100000이고, R연산이 최대 100000번 일어날 수 있습니다. 따라서 R연산마다 배열을 뒤집으면 시간 초과가 납니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 ..

[구현/그리디] 백준 2810 컵홀더 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 2. 문제 풀이 컵홀더를 사용할 수 있는 사람의 수를 구하는 문제입니다. 좌석은 S(싱글)과 LL(커플)석이 있습니다. 커플석 사이에는 컵홀더가 없기 때문에, 자칫 컵홀더를 사용하지 못하는 사람이 나올 수 있습니다. (커플이 문제) *S*LL*LL*S*S*LL* 위 예시에서는 2명이 컵홀더를 사용하지 못합니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을..

[구현/문자열] 백준 15904 UCPC는 무엇의 약자일까? - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 2. 문제 풀이 주어진 문장을 축약해서 UCPC를 만들 수 있는지 판별하는 문제입니다. 3. 코드 #입력 s = input() find = 'UCPC' #찾아야할 문자열 idx = 0 for i in s: # 해당 글자를 찾았으면 다음 글자로 넘어감 if i == find[idx]: idx += 1 # UCPC를 모두 찾았으면 끝내기 if idx == 4: print("I love UCPC")..

[탐색/구현] 백준 14500 테트로미노 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 2. 문제 풀이 테트릭스 모양으로 탐색한 뒤, 가장 점수를 출력하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 DFS는 인접노드가 없을 때까지, 끝까지 탐색하는 알고리즘입니다. 스택을 이용한 DFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. ..

[구현/문자열] 백준 6996 애너그램 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6996번: 애너그램 첫째 줄에 테스트 케이스의 개수(

[구현/그리디] 백준 2720 세탁소 사장 동혁 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 2. 문제 풀이 25/10/5/1 단위인 거스름돈을 구하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩..

[수학/DP] 백준 2407 조합 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 2. 문제 풀이 Comb(n, m)의 값을 구하는 문제입니다. from math import comb n, m = map(int, input().split()) print(comb(n, m)) 단순히 라이브러리를 이용하면, 쉽게 풀이하실 수 있습니다. 다만 직접 구현하고 싶다면, 동적계획법을 이용해야 합니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. ..

[탐색/BFS] 백준 10026 적록색약 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 2. 문제 풀이 RGB로 구성된 평면에서 색깔별로 나눠진 구역을 구하는 문제입니다. 단, 적록색맹은 녹색과 적색을 구분하지 못해서 동일하게 취급합니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구..

[SQL] 문자열 변환함수 To_Char()와 형식(Format) - 오라클(Oracle) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - 입양 시각 구하기(1) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 2. 문제 풀이 TO_CHAR(값, '형식') To_Char는 날짜나 숫자를 '특정 형식'의 문자열로 변환해주는 함수입니다. 단순히 자료형을 바꾸기보다는, 결과를 보기 좋게 출력할 때 많이 사용합니다. 형식(Format) 설명 (예시) YYYY 년도 (2022) MM 월 (03) DD 일 (05) HH24 24시간..

[구현/문자열] 백준 1652 누울 자리를 찾아라 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 2. 문제 풀이 2칸 길이의 가로 혹은 세로로 누울 자리를 구하는 문제입니다. 다만 문제 설명이 조금 모호하게 되어있고, 예제도 1개 밖에 없어서 문제 이해가 가장 어렵습니다... 1) 연속된 빈 칸(.)이 2개 이상 있어야 하고 2) 벽의 끝 또는 짐(X)에 닿아야 합니다. 2가지 조건을 모두 만족해야 자리 하나입니다. 따라서 .의 개수를 세다가 X 또는 벽을 만나면 자리 1개로 세시면 됩니다. 3. 코..

[구현/문자열] 백준 5598 카이사르 암호 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 2. 문제 풀이 카이사르 암호를 해독하는 문제입니다. 카이사르 암호는 알파벳 순서를 3개씩 뒤로 미는 방식으로, 쉬운 암호입니다. 넌센스 퀴즈나 IQ 테스트 등에서 볼 수 있죠. 3. 코드 word = input() for s in word: #A~C if ord(s)

[SQL] DISTINCT 중복 제거하기 - 오라클(Oracle) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - 중복 제거하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 2. 문제 풀이 DISTINCT col SQL에서 DISTINCT는 중복을 제거해줍니다. 유일한 값만을 남겨서 추출합니다. 3. 코드 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL 위 쿼리는 동명이인을 제외하고, 유일한 이름의 개수를 출..

[분할정복/DQ] 백준 1992 쿼드트리 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 2. 문제 풀이 영상 압축방법인 쿼드 트리를 구현하는 문제입니다. 2022.01.29 - [Algorithm] - [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 각개격파(各個擊破): 적을 하나하나 따로 떼어 무찌름 유독 외세의 침략을 많이 받았던 우리 민족의 대표적..

[SQL] Having 그룹핑 조건 설정하기 - 오라클(Oracle) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 2. 문제 풀이 Group by col Having 조건 Group by로 묶일 조건을 Having절로 설정할 수 있습니다. Having절의 조건에 해당하는 col만 묶이며, 나머지는 제외됩니다. 3. 코드 SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROU..

[구현/문자열] 백준 2857 FBI - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net 2. 문제 풀이 이름에 FBI가 들어갔는지 체크하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline noFBI = True for i in range(1, 6): name = input().rstrip() if 'FBI' in name: print(i, end=" ") noFBI = False if noFBI: print("HE GOT AWAY!") 파이썬의 In 연산자를 이용하면 문자열 안에 'FBI'가 있는지 쉽게 확인할 수 있습니..

[SQL] 특정 칼럼으로 묶기 Group by - 오라클(Oracle) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 2. 문제 풀이 group by col Group by는 특정 칼럼으로 묶어서 연산하도록 해줍니다. 그룹별로 묶어서 연산하므로, 반드시 '집계 함수' 또는 '그룹 함수'를 써줘야 합니다. max(col) 최댓값 min(col) 최솟값 median(col) 중앙값 count(col) 개수 sum..

[문자열/Brute Force] 백준 1969 DNA - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 2. 문제 풀이 여러 DNA들간의 헤밍거리가 최소인 DNA를 만들고, 그 헤밍거리의 합을 출력하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은,..

[구현/수학] 백준 14490 백대열 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 2. 문제 풀이 두 수의 최대공약수로 나누어서, 최소의 자연수로 비를 표현하는 문제입니다. 2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm) 두 자연수 X, Y가 있을 star7sss.tistor..

[SQL] 상위 n개 레코드 출력하기 - 오라클(Oracle), MySQL [내부링크]

[ Contents ] 1. 문제 (링크 참조) 코딩테스트 연습 - 상위 n개 레코드 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 2. 문제 풀이 예시는 상위 N개의 레코드를 구하는 문제입니다. Oracle) WHERE rownum = N MySQL) LIMIT N ORDER BY col 먼저 특정 컬럼에 대해 오름차순/내림차순 정렬 후 N개의 레코드만 뽑아냅니다. Orcale은 rownum의 개수를 한정해서 상위 N개의 레코드를 추..

[구현/수학] 백준 1267 핸드폰 요금 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 핸드폰 요금을 계산해서 더 싼 요금제를 출력하는 문제입니다. 1) 영식 요금제: 30초마다 10원씩 청구 2) 민식 요금제: 60초마다 15원씩 청구 통화시간이 대개 30초 이하라면 영식 요금제가 저렴하고, 30초 이상이면 민식 요금제가 저렴합니다. 3. 코드 N = int(input()) call = list(map(int, input().split())) y = 0 #영식 요금제 m = 0 #민식 요금..

[구현/수학] 백준 3053 택시 기하학 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 2. 문제 풀이 택시 기하학에서의 원 넓이를 구하는 문제입니다. 문제만 이해한다면 쉽게 풀 수 있습니다. 두 점 T1(x1, y1), T2(x2, y2) 사이의 거리는 택시 기하학: D(T1, T2) = | x1-x2 | + | y1-y2 | 유클리드 기하학: D(T1, T2) = rout( (x1-x2)^2 + (y1-y2)^2 ) 선형대수에서는 택시 기하학의 식을 'L1 norm', 유클리드 기하학의 식을 'L2 norm'이라고도 합..

[구현/수학] 백준 11098 첼시를 도와줘! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11098번: 첼시를 도와줘! 구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카 www.acmicpc.net 2. 문제 풀이 선수들 중 가장 비싼 선수를 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline #입력 n = int(input()) #테스크케이스 for _ in range(n): p = int(input()) #선수 수 player = dict() for i in range(p): cost, name = input().rstrip().split() player[na..

[탐색/BFS] 백준 7569 토마토 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 2. 문제 풀이 익은 토마토 주위로 위아래, 동서남북으로 안 익은 토마토가 있으면 익습니다. 모든 토마토가 익으려면 총 며칠이 걸리는지 구해야 합니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 7576 토마토 - Python [탐색/BFS] 백준 7576 토마토 - Python [ Contents ] 1. 문제 (링크 참조) 7576번: 토마토 첫 줄에는 상자의 ..

[구현/수학] 백준 6064 카잉 달력 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 2. 문제 풀이 카잉 달력에서 해는 몇 번째 해인지 구하는 문제입니다. 한 해가 지날 때마다 x와 y를 1씩 더하며 x는 M+1진법을, y는 N+1진법을 따릅니다. M = 2, N = 3, x = 2, y = 1일 때 1) 1:1 2) 2:2 3) 1:3 4) 2:1 위 예시는 4번째 해가 답이 됩니다. x와 y 모두 1씩 더해나가므로, Z번째 해는 와 같습니다.. (부터 시작으로 가정) 이 때 구해야할 답은 x = ..

[자료구조/해시] 백준 4358 생태학 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 2. 문제 풀이 나무 개수를 세고, 사전순으로 분포도를 출력하는 문제입니다. 2022.02.12 - [Algorithm] - [자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python [자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python [ Contents ] 1. 문제 (링크 참조) 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓..

[구현/수학] 백준 2355 시그마 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2355번: 시그마 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) www.acmicpc.net 2. 문제 풀이 A부터 B까지 등차가 1인 등차수열의 합을 구하는 문제입니다. (B-A+1) * (A+B) / 2 A부터 B까지의 등차수열의 합은 위 공식으로 구할 수 있습니다. 이 공식과 유명한 가우스의 일화가 있죠. 초등학교 때 이 공식을 생각해내서, 1부터 100까지 덧셈을 단숨에 계산했다는... 맨 앞과 맨 뒤를 합한 값은 한 칸씩 안쪽으로 이동해도 똑같습니다. 1+100, 2+99, 3+98... (등차수열이기 때문에) 따라서 두 수의 합을 등차수열의 절반 길이만큼만 곱해주면 쉽게 구할 수..

[구현/문자열] 백준 18406 럭키 스트레이트 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 2. 문제 풀이 앞부분의 숫자 합과 뒷 부분의 숫자합이 같은지 판별하는 문제입니다. 3. 코드 #입력 N = input() pre = 0 #앞부분 for i in range(len(N)//2): pre += int(N[i]) post = 0 #뒷부분 for i in range(len(N)//2, len(N)): post += int(N[i]) if pre == post: print("LUCKY") else: print("READY") 문자열로 입력받은 다음, 각 자릿..

[구현/문자열] 백준 17609 회문 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 2. 문제 풀이 주어진 문장이 회문, 유사회문 또는 회문이 아닌지 판별하는 문제입니다. 2022.03.02 - [Algorithm] - [구현/문자열] 백준 1254 팰린드롭 만들기 - 파이썬(Python) [구현/문자열] 백준 1254 팰린드롭 만들기 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한..

[구현/문자열] 백준 1254 팰린드롭 만들기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 2. 문제 풀이 팰린드롬을 만들기 위해서 추가하는 문자의 최소 개수를 구하는 문제입니다. 2022.02.06 - [Algorithm] - [구현/수학] 백준 10988 팰린드롬인지 확인하기 - Python [구현/수학] 백준 10988 팰린드롬인지 확인하기 - Python [ Contents ] 1. 문제 (링크 참조) 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, ..

[구현/문자열] 백준 1919 애너그램 만들기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1919번: 애너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs www.acmicpc.net 2. 문제 풀이 두 문자열이 애너그램이 되려면 몇 개의 문자를 제거해야하는지 구하는 문제입니다. 3. 코드 s1 = input() s2 = input() alphabet = [0]*26 for s in s1: alphabet[ord(s)-97] += 1 for s in s2: alphabet[ord(s)-97] -= 1 res = 0 #제거해야할 문자 for i in alphabet: re..

[구현/문자열] 백준 1264 모음의 개수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1264번: 모음의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄 www.acmicpc.net 2. 문제 풀이 문장 내의 모음의 개수를 세는 문제입니다. 3. 코드 import sys input = sys.stdin.readline #입력 while True: sentence = input().rstrip() if sentence == '#': break res = 0 for i in sentence.lower(): if i=='a' or i=='e' or i=='i' or i=='o'..

[구현/문자열] 백준 5586 JOI와 IOI - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5586번: JOI와 IOI 입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열은 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같 www.acmicpc.net 2. 문제 풀이 문자열 내 JOI와 IOI의 개수를 세는 문제입니다. 겹쳐도 상관없습니다. 3. 코드 string = input() joi = 0 ioi = 0 for i in range(len(string)-2): if string[i:i+3] == 'JOI': joi += 1 if string[i:i+3] == 'IOI': ioi += 1 print(joi) print(ioi) 주어진 문자열을 한 문자씩 ..

[구현/문자열] 백준 4999 아! - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net 2. 문제 풀이 두 문자열의 길이를 비교하는 문제입니다. 3. 코드 aah = input() ah = input() #재환이가 더 길게 ah를 하면 병원에 갈 필요없음 if len(aah) < len(ah): print("no") #짧으면 병원에 가야함 else: print("go") 입력형식에 a가 임의의 횟수로 반복된 후 h가 주어진다고 되어있습니다. 따라서 굳이 ah형식인지 따질 필요가 없습니다...

[구현/문자열] 백준 1225 이상한 곱셈 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1225번: 이상한 곱셈 첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다. www.acmicpc.net 2. 문제 풀이 두 수 A, B의 각 자릿수를 곱해서 더하는 문제입니다. 3. 코드 #입력 A, B = input().split() #각 자릿수 곱하고 더하기 res = 0 for i in A: for j in B: res += int(i) * int(j) print(res) 문자열로 입력받은 다음, 곱할 때만 int형으로 변환해줍니다. python으로 제출하면 시간초과가 뜹니다. pypy3로 제출하면 통과합니다.

[구현/문자열] 백준 10102 개표 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10102번: 개표 입력은 총 두 줄로 이루어져 있다. 첫째 줄에는 심사위원의 수 V (1 ≤ V ≤ 15)가 주어지고, 둘째 줄에는 각 심사위원이 누구에게 투표했는지가 주어진다. A와 B는 각각 그 참가자를 나타낸다. www.acmicpc.net 2. 문제 풀이 A와 B 중 누가 더 많은 표를 얻었는지 구하는 문제입니다. 3. 코드 V = int(input()) vote = input() A = 0 B = 0 for v in vote: if v == 'A': A += 1 else: B += 1 #출력 if A > B: print("A") elif A < B: print("B") else: print("Tie") 문자열로 입력받은 다음, A와 B의 개수를 ..

[구현/문자열] 백준 10821 정수의 개수 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10821번: 정수의 개수 숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 정수의 개수를 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지 www.acmicpc.net 2. 문제 풀이 쉼표(,)로 구분된 정수의 개수를 구하는 문제입니다. 2022.01.24 - [PL (Programming Language)/Python] - [Python] 사용자로부터 여러 입력값 받기 input().split() [feat. 형변환] [Python] 사용자로부터 여러 입력값 받기 input().split() [feat. 형변환] 2022.01.24 - [PL (Programming Languag..

[구현/문자열] 백준 11365 !밀비 급일 - 파이썬(python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 END가 나올 때까지, 입력받은 문장을 거꾸로 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline while True: sentence = input().rstrip() if sentence == 'END': break print(sentence[::-1]) 슬라이싱 [::-1]을 이용하면 문자열을 거꾸로 출력할 수 있습니다.

[구현/수학] 백준 2935 소음 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net 2. 문제 풀이 두 수와 연산자를 입력받아, 계산하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 st..

[구현/문자열] 백준 1159 농구 경기 - 파이썬(Python) [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 2. 문제 풀이 이름의 첫 글자가 같은 5명의 선수가 있는지를 확인하는 문제입니다. 2022.02.25 - [Algorithm] - [구현] 백준 1371 가장 많은 글자 - Python [구현] 백준 1371 가장 많은 글자 - Python [ Contents ] 1. 문제 (링크 참조) 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자..

[구현/수학] 백준 1357 뒤집힌 덧셈 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 2. 문제 풀이 숫자를 뒤집어서 덧셈하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프..

[구현/문자열] 백준 1032 명령 프롬프트 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 2. 문제 풀이 주어진 문자열이 같은지 비교하고, 다른 위치에는 ?를 넣는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적..

[구현/수학] 백준 9093 단어 뒤집기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 2. 문제 풀이 단어만 모두 뒤집어서 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문..

[DP/동적계획법] 백준 12852 1로 만들기 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 2. 문제 풀이 1로 만드는 최소 연산 횟수와 방법을 출력하는 문제입니다. 2022.02.21 - [Algorithm] - [동적계획법/DP] 백준 1463 1로 만들기 - Python [동적계획법/DP] 백준 1463 1로 만들기 - Python [ Contents ] 1. 문제 (링크 참조) 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2. 문제 풀이 1) 3으로 나누기 2) 2로 나누기 3) 1을 빼기.. star7sss.tisto..

[정렬/탐색] 백준 11004 K번째 수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 수열 A를 오름차순 정렬한 뒤, K번째 수를 구하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline N, K = map(int, input().split()) numlist = list(map(int, input().split())) numlist.sort() print(numlist[K-1]) 파이썬의 정렬 라이브러리를 이용하면 쉽게 해결할 수 있습니다. 정렬한 뒤, K번째 항목을 출력합니다.

[탐색/플로이드] 백준 1389 케빈 베이컨의 6단계 법칙 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 2. 문제 풀이 가장 인싸친구를 찾는 문제입니다. 케빈 베이컨의 6단계 법칙은 '인적 네트워크'의 중요성을 대두할 때 많이 언급하죠. 여섯 다리(지인)만 거치면 지구촌 모든 사람과 만날 수 있다는 허상(?)의 법칙입니다. 애초에 단계를 거칠 때마다 지인이 자신의 모든 지인에게 물어보고 성실하게 답해준다는 가정이 잘못됐죠. 2022.02.28 - [Algorithm] ..

[탐색/플로이드] 백준 11403 경로 찾기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 인접리스트가 주어졌을 때, 경유지를 통해 갈 수 있는 경로가 있는지를 구하는 문제입니다. 2022.02.28 - [Algorithm] - [Algorithm] 플로이드-와샬, 모든 쌍의 최적경로 구하기 [Algorithm] 플로이드-와샬, 모든 쌍의 최적경로 구하기 모든 쌍의 최단 경로를 '플로이드 - 와샬' 알고리즘으로 구하는 방법을 알아보고, 구현 코드도 살펴보겠습니다. [ Contents ] 1. 모든 쌍의 최단 경로 위 그래프 그림에서..

[Algorithm] 플로이드-와샬, 모든 쌍의 최적경로 구하기 [내부링크]

모든 쌍의 최단 경로를 '플로이드 - 와샬' 알고리즘으로 구하는 방법을 알아보고, 구현 코드도 살펴보겠습니다. [ Contents ] 1. 모든 쌍의 최단 경로 위 그래프 그림에서 '노드(Node)'는 원으로 된 지역이고, '간선(Edge)'은 각 지역으로 이동할 수 있는 경로입니다. 간선마다 이동거리 혹은 이동시간에 따른 가중치가 부여됩니다. '모든 쌍의 최단 경로'는 말 그대로, 지역 간 최단거리를 구하는 작업입니다. 보통은 A에서 B로 바로 가면 빠르지만, 경유지를 거쳐서 가는 게 더 지름길일 때도 있죠. 이런 경우를 모두 고려해서 계산해야 합니다. 예를 들어, 위 경로에서는 1->3으로 바로 가는 것보다, 2를 경유해서 가는 게 더 빠릅니다. 2. 플로이드 - 와샬(Floyd-Warshall) 알..

[그리디/수학] 백준 10610번 30 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 2. 문제 풀이 주어진 수를 재배열해서 가장 큰 30 배수를 만드는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350..

[구현/수학] 백준 15080 Every Second Counts - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15080번: Every Second Counts Input consists of two lines: the first contains the start time and the second contains the end time for a single taxi ride. Each time is of the form hh : mm : ss, giving the hour, minute and seconds. Meredith uses a 24 hour clock, with 0 : 0 : 0 representi www.acmicpc.net 2. 문제 풀이 두 시각의 차이를 구하는 문제입니다. 2022.02.26 - [Algorithm] - [구현/수학] 백준 18..

[구현/수학] 백준 15726 이칙연산 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15726번: 이칙연산 첫째 줄에 세 개 정수 A, B, C(1 ≤ A, B, C ≤ 1,000,000)가 주어진다. 답은 int범위를 벗어나지 않는다. www.acmicpc.net 2. 문제 풀이 '먼저 나누고 곱합 결과'와 '먼저 곱하고 나눈 결과'의 크기를 비교해서 더 큰 값을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하..

[구현/수학] 백준 16428 A/B - 3 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/16428 16428번: A/B - 3 첫째 줄에 A와 B가 주어진다. (-1010000 ≤ A, B ≤ 1010000, B ≠ 0) www.acmicpc.net 2. 문제 풀이 A/B의 결과를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.c..

[구현/수학] 백준 14935 FA - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14935번: FA 정수 x가 FA수 라면 FA를 출력하고, 아니라면 NFA를 출력한다. www.acmicpc.net 2. 문제 풀이 FA: X의 '맨 앞자리 수'와 '자릿수'를 곱한 값이 일정 주어진 X가 FA인지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 3. 코드 x = input(..

[구현/수학] 백준 16431 베시와 데이지 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16431번: 베시와 데이지 베시는 (3, 5) > (2, 4) > (2, 3) 경로로 이동하여 존에게 오는데 2초가 걸립니다. 반면 데이지는 (1, 1) > (1, 2) > (1, 3) > (2, 3) 경로로 이동하여 존에게 오는데 3초가 걸리므로 베시가 더 빨리 도착합니다. www.acmicpc.net 2. 문제 풀이 베시와 데이지, 존의 위치(x, y)가 주어집니다. 베시는 상하좌우와 '대각선' 한 칸을 이동할 수 있고, 데이지는 상하좌우 한 칸만 이동가능합니다. 셋의 위치가 주어졌을 때, 존에게 더 빨리 가는 사람을 구해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorith..

[구현/수학] 백준 13866 팀 나누기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13866번: 팀 나누기 입력은 네 개의 정수 A, B, C 및 D가 포함된 한 줄로 구성되며 4명의 스킬 레벨이 주어진다. (0 ≤ A ≤ B ≤ C ≤ D ≤ 104) www.acmicpc.net 2. 문제 풀이 2:2로 팀을 나눌 때, 실력 차이를 최소로 하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tisto..

[탐색/BFS] 백준 16928 뱀과 사다리 게임 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 2. 문제 풀이 뱀과 사다리 게임에서 100번째 칸에 도착하는 최소 횟수를 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알..

[탐색/BFS] 백준 2667 단지번호붙이기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 2. 문제 풀이 이어져있는 방의 크기를 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath First Searc..

[동적계획법/DP] 백준 9461 파도반 수열 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 2. 문제 풀이 정삼각형이 나선을 그리며 변의 길이가 늘어납니다. 늘어나는 변의 길이를 '파도반 수열'이라고 할 때, N번째 수를 구해야 합니다. 1 2 3 4 5 6 7 8 9 10 1 1 1 2 2 3 4 5 7 9 문제에서 주어진 P(1) ~ P(10)을 보면 규칙이 보이지 않지만, 좀 더 나열하면 보입니다. P(6) 이후로 P(i-1) + P(i-5)의 규칙이 나타납니다. 11 12 13 14 15 16 17 1..

[탐색/BFS] 백준 2178 미로 탐색 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 2. 문제 풀이 미로를 최단 거리로 탈출해야하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath First Search) 너비 우선 탐색(BFS)..

[구현/수학] 백준 18312 시각 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18312번: 시각 정수 N과 K가 입력되었을 때 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 모든 시각을 세는 프로그램을 작성하시오. 시각을 셀 때는 디지털 시계를 기준으로, www.acmicpc.net 2. 문제 풀이 00시 00분 00초부터 N시 59분 59초까지 K가 1번이라도 포함되는 모든 시각을 세는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다...

[구현/수학] 백준 6764 Sounds fishy! - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6764번: Sounds fishy! The output is one of four possibilities. If the depth readings are increasing, then the output should be Fish Rising. If the depth readings are decreasing, then the output should be Fish Diving. If the depth readings are identical, then the output should b www.acmicpc.net 2. 문제 풀이 증가, 감소, 항등 수열인지 판별하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단..

[구현/수학] 백준 2985 세 수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2985번: 세 수 첫째 줄에 정인이가 원래 적어준 등식을 출력한다. 입력으로 주어진 숫자의 순서는 유지해야 하고, 등호 하나와 더하기, 빼기, 곱하기, 나누기 기호 중 하나로 이루어져 있어야 한다. 만약 등식 www.acmicpc.net 2. 문제 풀이 주어진 세 수를 알맞은 등식으로 변환하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사..

[구현/수학] 백준 14623 감정이입 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14623번: 감정이입 첫 번째 줄에 입력으로 주어진 두 이진수 B1, B2의 곱을 이진수로 출력한다. 출력하는 이진수 앞에 불필요한 0이 붙으면 안 됨에 주의해야 한다. 즉 출력하는 이진수의 시작은 항상 1이어야 한다. www.acmicpc.net 2. 문제 풀이 두 이진수의 곱을 구하는 문제입니다. 2022.02.25 - [Algorithm] - [구현/수학] 백준 5893 17배 - Python [구현/수학] 백준 5893 17배 - Python [ Contents ] 1. 문제 (링크 참조) 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net 2. 문제 ..

[구현] 백준 11549 Identifying tea - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11549번: Identifying tea The first line contains an integer T representing the tea type (1 ≤ T ≤ 4). The second line contains five integers A, B, C, D and E, indicating the answer given by each contestant (1 ≤ A, B, C, D, E ≤ 4). www.acmicpc.net 2. 문제 풀이 5명의 참가자 중 정답을 맞춘 사람의 수를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현..

[구현/수학] 백준 5893 17배 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net 2. 문제 풀이 2진수 10진수 변환 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 3. 코드 N = input() num = 0 digit = 0 # ..

[구현] 백준 1371 가장 많은 글자 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이 www.acmicpc.net 2. 문제 풀이 주어진 입력에서 가장 많은 문자를 찾는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순..

[구현/수학] 백준 10214 Baseball - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10214번: Baseball 경근이는 수업 과제의 일환으로 연세대학교의 역사를 조사하고 있었다. 케케묵은 도서관 구석에서 경근이가 발견한 것은 역대 연고전의 야구경기 실황 기록문서였다. 하지만 문서를 가지고 있 www.acmicpc.net 2. 문제 풀이 야구 9회까지의 점수를 합하고 승패를 결정하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어..

[구현] 백준 13752 히스토그램 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13752번: 히스토그램 히스토그램은 데이터를 시각적으로 표현한 것이다. 막대로 구성되며 각 막대의 길이는 데이터 양의 크기를 나타낸다. 일부 데이터가 주어지면 히스토그램을 생성하시오. www.acmicpc.net 2. 문제 풀이 히스토그램을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 파..

[구현/수학] 백준 1009 분산처리 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net 2. 문제 풀이 10개의 컴퓨터에서 데이터를 분산처리합니다. a^b번째 데이터는 몇 번째 컴퓨터에서 처리하는지 구해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 ..

[구현/수학] 백준 2566 최댓값 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 2. 문제 풀이 81개의 숫자 중 최댓값과 그 위치를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 s..

[구현] 백준 24262 알고리즘 수업 - 알고리즘의 수행 시간 1 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 2. 문제 풀이 MenOfPassion(A[], n) { i = ⌊n / 2⌋; return A[i]; # 코드1 } 위 코드의 수행 횟수와 시간복잡도를 출력하는 문제입니다. def MenOfPassion(A, n): i = n//2 return A[i] #코드 1 파이썬으로 바꿔보면 위와 같은 함수입니다. 단순히 인덱스를 절반으로 줄여서 A[i]를 반환하는 문제입니다. n이 어..

[구현/수학] 백준 11282 한글 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11282번: 한글 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있 www.acmicpc.net 2. 문제 풀이 N번째 한글을 출력하는 문제입니다. 2022.02.25 - [Algorithm] - [구현/수학] 백준 11283 한글 2 - Python 유니코드를 한글로 변환하는 문제입니다. 한글은 44032부터 시작하며, '가' ~ '힣'까지 있습니다. 3. 코드 x = int(input()) print(chr(x+44031)) chr() 함수를 사용하면 유니코드를 '문자'로 바꿀..

[구현/수학] 백준 11283 한글 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11283번: 한글 2 한글의 각 글자는 초성, 중성, 종성으로 이루어져 있고, 이 세 가지를 모아써서 한 글자를 나타낸다. 초성은 ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ로 총 19개가 있 www.acmicpc.net 2. 문제 풀이 주어진 한글이 몇 번째 글자인지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로..

[분할정복/DQ] 백준 1074 Z - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 2. 문제 풀이 위와 같이 Z 모양으로 이동하는 규칙이 있습니다. 이 때, 2^N * 2^N크기의 r행 c열의 순서를 구하는 문제입니다. 2022.01.29 - [Algorithm] - [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 각개격파(各個擊破): 적을 하나하나 ..

[탐색/BFS] 백준 7576 토마토 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 2. 문제 풀이 모든 토마토가 다 익는 데 걸리는 시간을 구하는 문제입니다. 익은 토마토의 상하좌우에 안 익은 토마토가 있으면, 하루 뒤에 익게 됩니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용..

[탐색/BFS] 백준 1697 숨바꼭질 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 문제 풀이 출발 지점 N에서 도착 지점 K까지 가장 빠르게 가는 방법을 찾는 문제입니다. 1) X - 1 2) X + 1 3) 2 * X 3가지 방법으로 움직일 수 있고 최대한 적게 이동해서 도착해야 합니다. 1차원 그래프이기 때문에, 처음에는 DP문제인 줄 알았습니다. 하지만 DP처럼 모든 경우를 탐색할 순 없으며, 그럴 이유도 없습니다. 2022.02.23 - [Algorithm..

[탐색/BFS] 백준 1012 유기농 배추 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 2. 문제 풀이 인접한 유기농 배추의 연결 요소 개수를 세는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath First Sea..

[탐색/DFS] 백준 11724 연결 요소의 개수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 2. 문제 풀이 연결 요소의 개수를 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 DFS는 인접노드가 없을 때까지, 끝까지 탐색하는 알고리즘입니다. 스택을 이용한 DFS 구현방법과 코드를 알아보겠..

[Algorithm] 깊이 우선 탐색(DFS), 끝까지 찾고 넘어가자 [내부링크]

DFS는 인접노드가 없을 때까지, 끝까지 탐색하는 알고리즘입니다. 스택을 이용한 DFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. DFS(Depth First Search) 깊이 우선 탐색(DFS): 방문하지 않은 인접 노드가 없을 때까지 탐색하여 한 곳씩 마무리하는 방식 그래프에서 '노드(Node)'는 원으로 표현된 데이터이며, 노드끼리 연결된 선을 '간선(Edge)'이라고 합니다. 시작 노드를 1번이라고 할 때, DFS는 하나하나 끝까지 탐색합니다. [ 1 -> 2 -> 4 -> 5 -> 6 -> 3 ] (같은 거리 내 인접한 노드는 작은 노드부터 탐색한다고 가정) 2. 스택(Stack)을 이용한 탐색 방식 2022.02.10 - [Algorithm] - [Algorithm] 스택..

[탐색/BFS] 백준 2606 바이러스 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 2. 문제 풀이 1번 컴퓨터와 연결되어 있는 컴퓨터의 수를 구하는 문제입니다. 2022.02.23 - [Algorithm] - [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath Fi..

[Algorithm] 너비 우선 탐색(BFS), 가까운 주변부터 찾자 [내부링크]

BFS는 가까운 주변부터 탐색하는 알고리즘입니다. 큐를 이용한 BFS 구현방법과 코드를 알아보겠습니다. [ Contents ] 1. BFS(Breath First Search) 너비 우선 탐색(BFS): 가까운 주변 노드부터 탐색하며 점점 넓혀가는 방식 그래프에서는 원 안의 데이터를 '노드(Node)', 노드끼리 연결된 선을 '간선(Edge)'이라고 합니다. 1을 시작으로 할 때, BFS는 주변 노드부터 탐색합니다. [ 1 -> 2 -> 3 -> 4 -> 5 -> 6 ] (같은 거리 내 인접한 노드는 숫자가 작은 노드부터 탐색한다고 가정) 2. 큐(Queue)를 이용한 탐색 방식 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algori..

[정렬/탐색] 백준 18870 좌표 압축 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 2. 문제 풀이 오름차순으로 정렬한 뒤 최솟값부터 0, 1, 2 ... 매칭하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력..

[구현/문자열] 백준 5525 IOIOI - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 2. 문제 풀이 IOIOI가 주어진 문자열에 몇 번 포함되는지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적..

[동적계획법/DP] 백준 2579 계단 오르기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 문제 풀이 1. 한 번에 1계단 또는 2계단씩 오를 수 있다. 2. 연속된 3계단을 밟을 수 없다. 3. 마지막 계단은 반드시 밟아야 한다. 계단마다 획득 가능한 점수가 있고, 위 규칙을 따라 최대 점수를 획득해야 합니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ C..

[동적계획법/DP] 백준 17626 Four Squares - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 2. 문제 풀이 최소의 제곱수 합으로 N을 구하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic pro..

[구현/수학] 백준 1475 방 번호 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 방 번호를 붙이는 데에 필요한 숫자 세트 수를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 6과 9는 뒤집어서 공용으로 사용할 수..

[구현/수학] 백준 3009 네 번째 점 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 직사각형의 세 점이 주어졌을 때, 나머지 한 점을 찾는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 축에 평행한 직사각..

[그리디/Greedy] 백준 1931 회의실 배정 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 2. 문제 풀이 최대한 많은 회의를 수용하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다 star7sss.tistory.com 브루트포스 알고리즘으로 모든 경우의 수를 고려..

[동적계획법/DP] 백준 1463 1로 만들기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2. 문제 풀이 1) 3으로 나누기 2) 2로 나누기 3) 1을 빼기 3가지 연산을 최소로 사용해서 N을 1로 만드는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic programming, DP): 작은 문제들에 대한 결과를 배열(리스트)에 저장하고, 이..

[구현/수학] 백준 20673 Covid-19 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20673번: Covid-19 The input consists of two lines. The first line contains an integer p (0 ⩽ p ⩽ 1000), showing the average number of new cases per day in every one million population in Hana’s city over the past two weeks. The second line contains an integer q (0 ⩽ www.acmicpc.net 2. 문제 풀이 Covid-19 환자와 입원 환자의 수에 따라 등급을 매기는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] ..

[자료구조/힙] 백준 7662 이중 우선순위 큐 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 2. 문제 풀이 최댓값과 최솟값을 둘 다 반환할 수 있는 우선순위 큐를 설계하는 문제입니다. 2022.02.20 - [Algorithm] - [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련된 우선순위 큐도 살펴보겠습니다. [ Contents..

[자료구조/힙] 백준 11286 절댓값 힙 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 2. 문제 풀이 절댓값 힙을 구현하는 문제입니다. 절댓값이 작은 것부터 pop하며, 절댓값이 같을 경우에는 음수를 pop합니다. 2022.02.20 - [Algorithm] - [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련..

[자료구조/힙] 백준 11279 최대 힙 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 2. 문제 풀이 최대 힙 자료구조를 구현하는 문제입니다. 2022.02.20 - [Algorithm] - [자료구조/힙] 백준 1927 최소 힙 - Python [자료구조/힙] 백준 1927 최소 힙 - Python [ Contents ] 1. 문제 (링크 참조) 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타..

[자료구조/힙] 백준 1927 최소 힙 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 2. 문제 풀이 힙(Heap) 자료구조를 구현해서 푸는 문제입니다. 2022.02.20 - [Algorithm] - [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련된 우선순위 큐도 살펴보겠습니다. [ Contents ] 1...

[Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐 [내부링크]

그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련된 우선순위 큐도 살펴보겠습니다. [ Contents ] 1. 완전 이진트리(Complete Binary Tree) 완전 이진트리: 왼쪽부터 오른쪽으로 한 줄씩 채워가는 이진트리 트리(Tree) 구조는 마치 나무의 뿌리가 뻗어나가는 것처럼 위에서 아래로 확장되는 그래프 구조를 갖고 있습니다. 그래프에서 데이터는 '노드(node)'에 담기며, 맨 위 노드를 '루트(Rout) 노드'라고 합니다. 자신의 아래층에 있는 노드는 '자식 노드'이고, 위층에 있는 노드는 '부모 노드'입니다. 루트 노드는 부모 노드가 없으며, 리프(leaf) 노드는 자식 노드가 없습니다. (위 그래프에서 루트 노드: 1 / 리프 노드: 4, 9, 7) 이진트..

[구현/수학] 백준 14470 전자레인지 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14470번: 전자레인지 JOI 군은 식사 준비를 위해 A의 고기를 전자레인지로 B까지 데우려고 한다. 고기는 온도가 0보다 낮을 때 얼어 있고, 0보다 높을 때는 얼어 있지 않다. 온도가 정확히 0일 때 고기는 얼어 www.acmicpc.net 2. 문제 풀이 목표 온도까지 전자레인지로 고기를 데우는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, ..

[구현/수학] 백준 14264 정육각형과 삼각형 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14264번: 정육각형과 삼각형 첫째 줄에 정육각형 한 변의 길이 L이 주어진다. (1 ≤ L ≤ 1,000,000, L은 정수) www.acmicpc.net 2. 문제 풀이 정육각형을 4개의 삼각형으로 나눈 뒤, 가장 작은 삼각형의 넓이를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 정육..

[구현/수학] 백준 17388 와글와글 숭고한 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17388번: 와글와글 숭고한 첫 번째 줄에 숭실대학교의 참여도, 고려대학교의 참여도, 한양대학교의 참여도를 의미하는 세 자연수 S, K, H가 공백으로 구분되어 주어진다. (0 ≤ S, K, H ≤ 100) 세 대학의 참여도는 모두 다르다. www.acmicpc.net 2. 문제 풀이 세 대학교의 참여도를 비교하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없..

[구현/수학] 백준 20352 Circus - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20352번: Circus In the modern world, the spotlight has shifted entirely from live shows to televised recordings. Well, not entirely... One small troupe of indomitable entertainers still holds out and puts on regular circus performances. The shows are extremely popular. www.acmicpc.net 2. 문제 풀이 이 문제의 제목은 curious 즉 흥미로운이다 그렇기에 흥미를 가지고 문제를 풀어야 한다. 인생 일대의 호기심을 가지고 문제를 푼다고 가..

[구현/수학] 백준 16204 카드 뽑기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16204번: 카드 뽑기 첫째 줄에 N, M, K가 주어진다. (1 ≤ N ≤ 1,000,000, 0 ≤ M, K ≤ N) www.acmicpc.net 2. 문제 풀이 앞, 뒷면이 같은 기호인 카드의 최대 갯수를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 최대한 같은 부호끼리 겹쳐서 쓰면 ..

[구현/수학] 백준 14924 폰 노이만과 파리 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 14924번: 폰 노이만과 파리 역사상 최고의 천재중 하나인 폰 노이만에게는 다음과 같은 재밌는 일화가 있다. 그의 동료는 어느 날 폰 노이만의 천재성을 시험해보기 위해서 다음과 같은 질문을 던졌다. “200마일 길이의 철 www.acmicpc.net 2. 문제 풀이 두 기차가 만날 때, 파리가 이동한 거리를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없..

[구현/수학] 백준 10768 특별한 날 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10768번: 특별한 날 마지막 줄에 "Before", "After"나 "Special"을 출력한다. www.acmicpc.net 2. 문제 풀이 주어진 날짜가 2월 18일 전인지, 그 날인지, 후인지를 판별하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com Switch문을 쓰면 좀 더 편할 수도 있..

[구현/수학] 백준 16486 운동장 한 바퀴 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 16486번: 운동장 한 바퀴 첫째 줄에 d1의 값이 주어진다. 둘째 줄에는 d2의 값이 주어진다. (d1, d2의 값은 100,000 이하의 양의 정수) www.acmicpc.net 2. 문제 풀이 운동장 한 바퀴의 둘레의 길이를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 원주는 2*반지..

[구현/수학] 백준 Darius님 한타 안 함? - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 20499번: Darius님 한타 안 함? 그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다. www.acmicpc.net 2. 문제 풀이 주어진 KDA를 보고, 하수인지 고수인지 판단하는 문제입니다. 개인적으로 다리우스 채팅이 웃기네요. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com if문으로 구현할..

[구현/수학] 백준 10179 쿠폰 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10179번: 쿠폰 당신은 어떤 물건이라도 20% 할인해주는 쿠폰을 가지고 있다. 원래 가격이 주어질 때, 쿠폰을 사용하면 얼마가 되는지 알려주는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 20% 할인된 물건의 가격을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 20..

[구현/수학] 백준 6763 Speed fines are not fine! - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 6763번: Speed fines are not fine! Many communities now have “radar” signs that tell drivers what their speed is, in the hope that they will slow down. You will output a message for a “radar” sign. The message will display information to a driver based on his/her speed according to www.acmicpc.net 2. 문제 풀이 속도제한 벌금을 구하는 문제입니다. 제한속도보다 1~20 높으면 100달러, 20~30 높으면 270달러, 31 이상..

[구현/수학] 백준 4299 AFC 윔블던 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4299번: AFC 윔블던 원섭이는 잉글랜드 4부리그 풋볼 리그 2에서 활약하는 AFC 윔블던을 좋아한다. 이 팀은 2002년 윔블던 FC가 밀턴 킨스로 연고 이전을 감행하자 윔블던의 서포터들이 스스로 나서 창단한 팀이다. 윔 www.acmicpc.net 2. 문제 풀이 두 점수의 합과 차가 주어지고, 이를 이용해서 두 점수를 추측하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 ..

[분할정복/DQ] 백준 1780 종이의 개수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 2. 문제 풀이 -1, 0, 1로만 이루어진 종이의 개수를 세는 문제입니다. 혼합되어 있으면, 9등분하여 다시 판별합니다. 2022.01.29 - [Algorithm] - [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 각개격파(各個擊破): 적을 하나하나 따로 떼어 무..

[그리디/Greedy] 백준 11399 ATM - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 문제 풀이 ATM에서 대기하는 시간을 구하는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문..

[자료구조/해시] 백준 17219 비밀번호 찾기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 2. 문제 풀이 사이트 주소 - 비밀번호 쌍을 입력받고, 주어지는 사이트 주소의 비밀번호를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력..

[Kaggle/캐글] 코스(Course) 하는 방법: Exercise 제출/정답확인, 진행도 올리기 [내부링크]

캐글에서는 데이터 분석 기본 개념을 배우고, 실습할 수 있는 Course 교육 플랫폼을 제공합니다. 이 글에서는 첫 코스인 Python을 시작하고 진행하는 방법을 알아보겠습니다. 2022.02.15 - [Etc . . .] - [Kaggle/캐글] 데이터 분석의 시작, 케글 초보자 가이드 [Kaggle/캐글] 데이터 분석의 시작, 케글 초보자 가이드 [ Contents ] 1. 캐글이란? 캐글은 데이터 분석 경진대회 플랫폼입니다. 간단한 통계 분석, 데이터 시각화부터 머신러닝과 딥러닝까지 폭넓게 다루고 있습니다. 전세계의 데이터 과학자, 엔지니어 star7sss.tistory.com (캐글 설명은 위 링크를 참조하세요.) [ Contents ] 1. Python 코스 시작하기 캐글에서는 간단한 데이터 분..

[Kaggle/캐글] 데이터 분석의 시작, 케글 초보자 가이드 [내부링크]

[ Contents ] 1. 캐글이란? 캐글은 데이터 분석 경진대회 플랫폼입니다. 간단한 통계 분석, 데이터 시각화부터 머신러닝과 딥러닝까지 폭넓게 다루고 있습니다. 전세계의 데이터 과학자, 엔지니어가 모여서 활동하며, 데이터 사이언스 계의 '깃허브'로 불립니다. Kaggle: Your Machine Learning and Data Science Community Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals. www.kaggle.com 위 링크는 캐글 사이트입니다. 무료로 가입하고 이용할 수 있습니다. 회원가입을 하고..

[자료구조/해시] 백준 1764 듣보잡 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 2. 문제 풀이 두 집합의 교집합을 사전순으로 정렬하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어..

[구현/수학] 백준 11441 합 구하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net 2. 문제 풀이 주어진 수열의 구간 합을 구하는 문제입니다. 2022.02.14 - [Algorithm] - [구현/수학] 백준 11659 구간 합 구하기 4 - Python [구현/수학] 백준 11659 구간 합 구하기 4 - Python [ Contents ] 1. 문제 (링크 참조) 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N..

[구현/수학] 백준 11659 구간 합 구하기 4 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 2. 문제 풀이 길이 N의 수열이 주어졌을 때, 구간 합을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로..

[Github] 깃허브에서 브랜치(branch) 생성하고 활용하기 [내부링크]

깃허브에서 브랜치를 생성하고, 활용하는 방법을 알아보겠습니다. [ Contents ] 1. 브랜치(Branch) Branch: 여러 명과 협업할 때, 분기를 나누어서 진행하고 병합할 수 있는 기능 브랜치는 '나뭇가지'와 같이, 여러 명과 협업할 때 각자 파트를 나눠서 코드를 관리하는 기능입니다. 여러 기능을 동시에 만들고 push하면 오류가 날 확률이 높고, 디버깅하기도 어렵습니다. 따라서 분기를 나눠서 기능을 다 만들면, 원래 프로젝트에 합치는(merge) 방법을 사용합니다. 2022.02.12 - [Etc . . .] - [Github] Add, Commit, Push 이해하기 (로컬 저장소와 원격 저장소) [Github] Add, Commit, Push 이해하기 (로컬 저장소와 원격 저장소) Git..

[구현/수학] 백준 10870 피보나치 수 5 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 문제 풀이 N번째 피보나치 수를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래..

[DP/동적계획법] 백준 10826 피보나치 수 4 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10826번: 피보나치 수 4 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 문제 풀이 N번째 피보나치 수를 구하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic prog..

[DP/동적계획법] 백준 2749 피보나치 수 3 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2749번: 피보나치 수 3 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 N번째 피보나치 수를 구하는 문제입니다. 2022.02.13 - [Algorithm] - [DP/동적계획법] 백준 2748 피보나치 수 2 - Python [DP/동적계획법] 백준 2748 피보나치 수 2 - Python [ Contents ] 1. 문제 (링크 참조) 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 star7sss.tistory.c..

[DP/동적계획법] 백준 2748 피보나치 수 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 문제 풀이 N번째 피보나치 수를 구하는 문제입니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic progr..

[Python] while 반복문과 break, continue 제어자 [내부링크]

파이썬의 반복문은 while과 for문이 있습니다. 이번 시간에는 while 반복문과 그와 관련된 break, continue 제어자를 알아보겠습니다. [ Contents ] 1. 반복문 while whlie 조건문 반복할 행위 While문은 조건식이 True이면 반복해서 실행합니다. 조건문이 False가 되면 반복문을 빠져나오며, 맨 처음부터 False면 아예 실행하지 않습니다. 반복문의 조건은 '반복 횟수'를 제한하는 역할을 합니다. 위 코드와 같이 n으로 반복 횟수를 지정할 수도 있으며, 특정 조건을 달성할 시 종료할 수도 있습니다. def gcd(x, y): if x < y: x, y = y, x while y != 0: x %= y x, y = y, x return x 위 코드는 유클리드 호제법..

[Python] 조건문 if, elif 그리고 else문 [내부링크]

[ Contents ] 1. 조건문 if if 조건: 행위 조건문 if는 "만약 ~라면" 이라는 가정의 뜻을 가지고 있습니다. '조건'이 충족되면 '행위'를 실행하고, 그렇지 않으면 실행하지 않습니다. 조건문에는 비교 및 논리연산자로 구성된 식이 들어갑니다. 위 조건문은 2 < 3 이므로 True이며 실행됩니다. 반면, 조건이 거짓(False)이면 실행되지 않습니다. 여기서 주의하실 점은 'Tab'입니다. if문의 행위 부분은 'Tab'으로 들여쓰기 해야합니다. 들여쓰기된 부분만 조건에 따라 실행됩니다. (pass는 아무런 행위를 안할 때 쓰는 문구입니다.) 2. if - elif - else문 if 조건1: 행위1 elif 조건2: 행위2 (elif 조건n: . . .) else: 위 조건이 아닐 때 ..

[DP/동적계획법] 백준 1003 피보나치 함수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 문제 풀이 fibo[n] = fibo[n-1] + fibo[n-2] 피보나치 수열에서 0과 1이 리턴되는 횟수를 구하는 문제입니다. 피보나치 수열은 이전 결과와 그 이전 결과의 합으로 구성됩니다. 따라서 몇 번째 피보나치 수이든, 2이상이면 반드시 0과 1을 1번 이상 호출해야 합니다. 2022.02.12 - [Algorithm] - [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [ Contents ] 1...

[Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) [내부링크]

[ Contents ] 1. 동적 프로그래밍(Dynamic Programming, 동적계획법) 동적계획법(Dynamic programming, DP): 작은 문제들에 대한 결과를 배열(리스트)에 저장하고, 이를 이용해서 입력 크기가 더 큰 문제를 점진적으로 해결하는 방법 동적계획법은 이전 문제들의 답을 메모해두는 알고리즘입니다. 메모해두면, 동일한 문제가 나왔을 때 바로 답을 찾아서 쓸 수 있습니다. 다시 계산할 필요가 없기 때문에, 이전 문제의 해가 필요할 때 많은 시간을 절약할 수 있습니다. fibo(0) = 0 fibo(1) = 1 fibo(2) = fibo(1) + fibo(0) fibo(3) = fibo(2) + fibo(1) ... fibo(n) = fibo(n-1) + fibo(n-2) 다이..

[Github] Add, Commit, Push 이해하기 (로컬 저장소와 원격 저장소) [내부링크]

Github에 소스코드를 업로드할 때, add / commit / push 명령어를 사용합니다. 이 글에서는 로컬 저장소와 원격 저장소의 관계를 통해, 해당 명령어들이 어떤 의미를 가지는지 알아보겠습니다. [ Contents ] 1. Git과 Github 2022.02.12 - [Etc . . .] - [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기 [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기 [ Contents ] 1. 깃허브(Github) Github: 세계 최대 규모의 Git 호스팅 사이트 (이용자 수: 2800만 명) 마이크로 소프트(MS)에서 인수한 깃허브에서 무료로 소스코드를 저장하고 관리할 수 있습니다. 공개 star7sss.tistory.com Git..

[Github] 깃허브 레포지토리(Repository) 생성하기 [내부링크]

깃허브에서 레포지토리(원격 저장소)를 생성하는 방법에 대해서 알아보겠습니다. 2022.02.12 - [Etc . . .] - [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기 [Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기 [ Contents ] 1. 깃허브(Github) Github: 세계 최대 규모의 Git 호스팅 사이트 (이용자 수: 2800만 명) 마이크로 소프트(MS)에서 인수한 깃허브에서 무료로 소스코드를 저장하고 관리할 수 있습니다. 공개 star7sss.tistory.com (깃허브 관련 설명은 위 링크를 참조해주세요.) [ Contents ] 1. 레포지토리(Repository, 원격저장소) 레포지토리는 원격 저장소라는 뜻으로, 깃허브에 업로드된 프로젝트..

[자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 2. 문제 풀이 포켓몬 이름을 순서대로 입력받습니다. 입력받은 순서대로 번호를 부여하며(1,2,3...) 숫자 또는 포켓몬 이름으로 질문합니다. 숫자가 입력으로 들어오면 해당 포켓몬 이름을, 이름이면 번호를 출력해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Co..

[Github] 세계 최대 형상관리 시스템, 깃과 깃허브 알아보기 [내부링크]

[ Contents ] 1. 깃허브(Github) Github: 세계 최대 규모의 Git 호스팅 사이트 (이용자 수: 2800만 명) 마이크로 소프트(MS)에서 인수한 깃허브에서 무료로 소스코드를 저장하고 관리할 수 있습니다. 공개 저장소는 무료이고, 작업자 3인 이하의 비공개 저장소도 무료로 사용할 수 있습니다. (대학생의 경우, 유료 서비스도 무료로 사용 가능) GitHub: Where the world builds software GitHub is where over 73 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories..

[구현/비트마스킹] 백준 11723 집합 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 2. 문제 풀이 집합 연산을 하는 문제입니다. 문제 유형은 비트마스킹으로, 비트 연산을 통해 집합 연산을 구현합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이,..

[자료구조/해시] 백준 15829 Hashing - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 2. 문제 풀이 주어진 해시함수에 따라 해시값을 구하는 문제입니다. 알파벳(a_i)은 a~z까지 1~26으로 나타내고, i번째 글자는 31의 i제곱을 곱해줍니다. M은 1234567891이며, M으로 나눈 나머지가 해시값이 됩니다. 나머지 연산자는 결합법칙이 성립하므로, 각 문자의 해시값이 너무 커지지 않도록 미리미리 M으로 나머지를 구해주는 게 좋습니다. 3. 코드 L = int(input()) #문자길이 str..

[Brute Force] 백준 18111 마인크래프트 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 2. 문제 풀이 1) 블록 제거: 2초, 블록 +1 2) 블록 추가: 1초, 블록 - 1 주어진 블록의 개수로 최대한 빠르게 평평하게 만드는 문제입니다. 동일한 시간이 걸릴 경우, 더 높은 경우를 출력해야 합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algori..

[구현/수학] 백준 2869 달팽이는 올라가고 싶다 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 2. 문제 풀이 아침에 A만큼 올라가고, 밤에 B만큼 내려가는 달팽이가 있습니다. 높이 V미터까지 올라가는 데 며칠이 걸리는지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법..

[구현/수학] 백준 2108 통계학 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 2. 문제 풀이 N개의 수열의 '산술평균', '중앙값', '최빈값', '범위'를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 ..

[정렬/탐색] 백준 2805 나무 자르기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 2. 문제 풀이 N개의 나무를 동일한 높이로 잘라서 최소 M 크기의 나무토막을 구하는 문제입니다. 이 때, 나무 높이를 최대로 해서 낭비되는 나무를 줄여야 합니다. 나무 높이를 h로 자를 때, h보다 작은 나무들은 잘라지지 않습니다. 2022.02.10 - [Algorithm] - [정렬/탐색] 백준 1654 랜선 자르기 - Python [정렬/탐색] 백준 1654 랜선 자르..

[정렬/탐색] 백준 1654 랜선 자르기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 2. 문제 풀이 K개의 랜선을 잘라서, 동일한 길이의 N개 랜선을 만드는 문제입니다. 이 때, N개 랜선의 최대 길이를 구해야 합니다. 2022.02.09 - [Algorithm] - [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [ Contents ] 1. 이진탐색 (Bina..

[자료구조/큐] 백준 1966 프린터 큐 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 2. 문제 풀이 N개의 문서 중 M번째 문서가 출력되는 순서를 구합니다. 프린터 큐는 선입선출 방식으로 먼저 출력한 문서가 먼저 나옵니다. 하지만 이 문제에서는 문서마다 중요도가 있으며, 중요도가 제일 높은 문서만 출력됩니다. 중요도가 낮은 문서는 맨 뒤로 출력이 미뤄집니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Que..

[자료구조/스택] 백준 1874 스택 수열 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 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 2. 문제 풀이 스택을 이용한 수열이 가능한지 검증하는 문제입니다. 스택에는 1부터 N까지의 숫자가 입력되며, push와 pop 연산으로 제시된 수열을 만들어야 합니다. 2022.02.10 - [Algorithm] - [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [Algorithm] 스택(stack), 차곡차곡 쌓..

[구현/수학] 백준 11866 요세푸스 문제 0 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 2. 문제 풀이 요세푸스 순열은 N개로 이루어진 원에서 K마다 제거되는 숫자를 모아둔 걸 뜻합니다. 주어지는 N과 K에 따라 형성되는 요세푸스 순열을 출력해야 하는 문제입니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [ Contents ] 1. 큐(Queue) 큐(Queue): 선입선출(First-in-First-out), 가장 먼저 들어간 자료부터 꺼내는 자료구조..

[Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [내부링크]

[ Contents ] 1. 큐(Queue) 큐(Queue): 선입선출(First-in-First-out), 가장 먼저 들어간 자료부터 꺼내는 자료구조 큐는 '줄 서는 것'과 비슷합니다. 먼저 들어가서 기다린 자료부터 차례차례 꺼냅니다. 앞에서부터 꺼내며, 추가된 자료는 뒤에서부터 줄을 세웁니다. 자료의 중간이나 뒤부터 꺼낼 수 없으며, 앞에서부터 차례차례 꺼내야 합니다. 2. 큐 함수 .push(a) 맨 뒤에 a 자료 추가 (enqueue) .pop() 맨 앞의 자료 꺼내고 삭제 (dequeue) .front() 맨 앞의 자료 반환 .rear() 맨 뒤의 자료 반환 .isEmpty() 비어있으면 1, 아니면 0 반환 맨 앞의 자료만 삭제할 수 있고, 맨 뒤에 자료를 추가할 수 있습니다. 맨 앞과 뒤의 ..

[자료구조/스택] 백준 4949 균형잡힌 세상 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 2. 문제 풀이 소괄호와 대괄호가 잘 닫혀있는지 판정하는 문제입니다. [ (( )) ] => O ( [ ( ) ] ) => O ( [ ) ] => X 괄호가 서로 겹쳐지는 건 괜찮지만, 엇갈리면 안됩니다. 이 경우를 유의해야 합니다. 2022.02.10 - [Algorithm] - [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [Algorithm] 스택(stack), 차곡차곡 쌓는 ..

[Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [내부링크]

[ Contents ] 1. 스택(Stack) 스택(Stack): 후입선출(Last-in-First-out). 가장 최근에 들어간 자료부터 꺼내는 자료구조 스택은 말 그대로 쌓는(stack) 자료 구조입니다. 아래서부터 차곡차곡 쌓은 다음, 위에서 하나씩 뺍니다. 밑에 있는 걸 억지로 뺄려고 하면 무너지겠죠.. 가장 마지막에 들어간 자료부터 꺼내며, 억지로 앞에 있는 자료를 꺼낼 수 없습니다. 2. 스택 함수 .push(a) a 추가 .pop() 가장 최근 자료를 삭제하고 반환 .peek() 가장 최근 자료를 반환 (삭제 X) .empty() 스택이 비어있으면 1, 아니면 0 반환 스택 함수는 가장 마지막에 넣은 자료만 조작할 수 있습니다. 3. 스택 구현 class Stack: # top은 가장 최근 ..

[정렬/탐색] 백준 10816 숫자 카드 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 2. 문제 풀이 숫자카드 N개 중에 정수 M개를 찾는 문제입니다. 2022.02.10 - [Algorithm] - [정렬/탐색] 백준 1920 수 찾기 - Python [정렬/탐색] 백준 1920 수 찾기 - Python [ Contents ] 1. 문제 (링크 참조) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[..

[정렬/탐색] 백준 1920 수 찾기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 2. 문제 풀이 N개의 숫자들 중에 M개의 숫자가 있는지 탐색하는 문제입니다. 2022.02.09 - [Algorithm] - [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [ Contents ] 1. 이진탐색 (Binary Search, 이분탐색) 이진탐색..

[Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [내부링크]

[ Contents ] 1. 이진탐색 (Binary Search, 이분탐색) 이진탐색: 정렬된 자료를 절반씩 나누어서 탐색하는 방법 오름차순(또는 내림차순)으로 정렬된 자료에서 사용합니다. 찾고자 하는 숫자와 자료의 중간값과 비교하여 탐색 범위를 절반씩 줄여갑니다. 찾고자 하는 수보다 작으면 작은 쪽을, 크면 큰 쪽을 찾습니다. 이진탐색 과정 1) 찾는 값과 중앙값을 비교합니다. 2) 중앙값과 같다면 탐색 종료. 작다면 작은 쪽을 크다면 큰 쪽을 찾습니다. 3) 값을 찾을 때까지 1, 2 과정을 반복합니다. 예를 들어 32를 찾고자 한다면, 중앙값인 63과 값을 비교합니다. 63보다 작으니, 작은 쪽에서 찾습니다. 12, 32, 41의 중앙값은 '32'입니다. 32를 찾았으므로 종료합니다. 2. 이진탐색..

[구현/수학] 백준 1769 3의 배수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 2. 문제 풀이 자연수 n이 주어집니다. n이 1의 자리가 될 때까지 각 자릿수를 더해 변환합니다. 각 자릿수를 더한 합이 3의 배수이면 더하기 전의 수도 3의 배수입니다. 1의 자리가 3의 배수(3, 6, 9) 일 경우, n은 3의 배수입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ..

[수학/소수] 백준 4948 베르트랑 공준 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 2. 문제 풀이 n보다 크고 2n보다 작은 소수의 개수를 출력하는 문제입니다. 2022.02.08 - [Algorithm] - [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 에라토스 테네스의 체를 통해서 소수를 판별하는 알고리즘을 알아보겠습니다. [ Contents ] 1. 소수 소수(Prime): 약수가 1과 자기 자신밖에 ..

[수학/소수] 백준 11653 소인수분해 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 2. 문제 풀이 주어진 N을 소인수분해 하는 문제입니다. 2022.02.08 - [Algorithm] - [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 에라토스 테네스의 체를 통해서 소수를 판별하는 알고리즘을 알아보겠습니다. [ Contents ] 1. 소수 소수(Prime): 약수가 1과 자기 자신밖에 없는 수 '소수'는 1과 자기 자신으로만 나누어 떨어지는 star7sss.tistory.com 에라토스 테네스의 체처럼, 2부터 나누는 수를 1씩 올려가..

[수학/소수] 백준 2581 소수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 2. 문제 풀이 자연수 M이상 N이하의 소수들의 합과 최솟값을 구하는 문제입니다. 소수가 없을 경우에는 -1를 출력합니다. 2022.02.08 - [Algorithm] - [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 에라토스 테네스의 체를 통해서 소수를 판별하는 알고리즘을 알아보겠습니다. [ Contents ] 1. 소수 소수(Prime): ..

[구현/수학] 백준 10250 ACM호텔 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 2. 문제 풀이 호텔의 층 수와 층별 방의 개수가 주어졌을 때, n번째 방을 찾는 문제입니다. 방의 순서는 101, 201, 301... 과 같이 층 수가 높아지며, 마지막 층에 다다르면 1층 다음방(102)으로 넘어갑니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1..

[Brute Force] 백준 2798 블랙잭 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 2. 문제 풀이 N장에 카드 중 3장을 뽑아, M에 가장 가까운 수를 만드는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력..

[수학/소수] 백준 1929 소수 구하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 2. 문제 풀이 M이상 N이하의 모든 소수를 출력하는 문제입니다. 2022.02.08 - [Algorithm] - [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 [Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 에라토스 테네스의 체를 통해서 소수를 판별하는 알고리즘을 알아보겠습니다. [ Contents ] 1. 소수 소수(Prime): 약수가 1과 자기 자신밖에 없는 수 '소수'는 1과 자기 자신으로만 나누어 떨어..

[Algorithm] 소수 판별 알고리즘, 에라토스 테네스의 체 [내부링크]

에라토스 테네스의 체를 통해서 소수를 판별하는 알고리즘을 알아보겠습니다. [ Contents ] 1. 소수 소수(Prime): 약수가 1과 자기 자신밖에 없는 수 '소수'는 1과 자기 자신으로만 나누어 떨어지는 자연수입니다. 반대로 1과 자기 자신 외에 다른 약수가 있으면 '합성수'라고 합니다. '소수 판별'은 특별한 공식이 없으며, 정의대로 1과 자기자신 사이의 수 중 약수가 있는지 검증해야 합니다. 숫자가 클수록 검증해야 하는 숫자들이 많아지며, 계산복잡도도 높아집니다. 따라서 RSA와 같은 각종 보안 알고리즘에 응용되며, 소수 판별 알고리즘의 중요성도 커지고 있습니다. 만약 소수를 빠르게 찾아낼 수 있는 공식을 찾아낸다면, 블록체인을 비롯해서 사회 전반의 보안 알고리즘을 뚫어낼 수 있습니다. (그럴..

[구현] 백준 10995 별 찍기 - 20 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10995번: 별 찍기 - 20 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 2. 문제 풀이 물결 모양의 별 모양을 찍는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 먼저 N 크기의 정사각형 별 모양을 만듭니다. 그 다음에 짝수행 맨 앞에 " "만 추가하면 됩니다..

[구현] 백준 10992 별 찍기 - 17 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10992번: 별 찍기 - 17 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 2. 문제 풀이 모양의 별을 찍는 문제입니다. 2022.02.08 - [Algorithm] - [구현] 백준 10990 별 찍기 - 15 - Python [구현] 백준 10990 별 찍기 - 15 - Python [ Contents ] 1. 문제 (링크 참조) 10990번: 별 찍기 - 15 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2. 문제 풀이 ∧ 모양을 만드는 별 찍기 문제입니다. 2022.01.19 - [Algorithm].. star7sss.tistory.com 별 찍기 - 15의 ∧ 모양에서 ..

[구현] 백준 10991 별 찍기 - 16 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10991번: 별 찍기 - 16 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 2. 문제 풀이 N 높이의 피라미드 모양 별 찍기입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 공백문자와 별(*) 문자의 규칙을 찾아서 반복문으로 구현합니다. 한 번에 구현하려고 하기보다는, ..

[구현] 백준 10990 별 찍기 - 15 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10990번: 별 찍기 - 15 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2. 문제 풀이 ∧ 모양을 만드는 별 찍기 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 반복문을 이용해서 ∧ 모양으로 별을 출력합니다. * 사이의 공간은 공백문자로 채우며, 한 행마다 개..

[구현] 백준 2556 별 찍기 - 14 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2556번: 별 찍기 - 14 지금까지 안 나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요. www.acmicpc.net 2. 문제 풀이 지금까지 안 나온 별 찍기, 를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 모양을 안 알려줘서 어렵지... 모양을 알고나면 가장 쉬운 ..

[구현] 백준 2523 별 찍기 - 13 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2. 문제 풀이 모양을 만드는 별 찍기 문제입니다. 반복문을 이용해서 * 수를 조절합니다. 2022.02.08 - [Algorithm] - [구현] 백준 2522 별 찍기 - 12 - Python [구현] 백준 2522 별 찍기 - 12 - Python [ Contents ] 1. 문제 (링크 참조) 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2. 문제 풀이 모양으로 별을 찍는 문제입니다. 2022.01.19 - [Algorithm].. star7sss.tis..

[구현] 백준 2522 별 찍기 - 12 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2. 문제 풀이 모양으로 별을 찍는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 단 번에 출력하려고 하면 어렵습니다. 윗 삼각형과 아랫 삼각형으로 나누어서 반복문을 작성합니다. ..

[구현/재귀함수] 백준 17478 재귀함수가 뭔가요? - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 2. 문제 풀이 한 번 풀면 재귀함수의 정의를 잊어버릴 수 없는 문제입니다. 재귀함수(Recursion Function): 함수 내에 자기 자신을 다시 호출하는 함수 재귀함수는 자기 자신을 호출하는 함수입니다. 함수 정의부분에 자기 자신을 호출합니다. def factorial(n): if n == 1: # n이 1이면 재귀를 마칩니다. return 1 return n * factorial(n-1) 재귀함수 대표 예..

[Brute Force] 백준 2231 분해합 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 2. 문제 풀이 분해합: 자기 자신과 각 자릿수의 합 M의 분해합이 N인 경우, M은 N의 생성자입니다. N의 가장 작은 생성자를 찾는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? ..

[Brute Force] 백준 1436 영화감독 숌 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 2. 문제 풀이 666이 들어간 숫자를 찾는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운..

[구현/수학] 백준 1085 직사각형에서 탈출 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 2. 문제 풀이 직사각형 안 (x, y) 좌표에서 가장 가까운 변의 거리를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알..

[Brute Force] 백준 1018 체스판 다시 칠하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 2. 문제 풀이 N * M 크기의 보드판이 주어집니다. 보드판은 검은색과 하얀색이 뒤섞여있으며, 체스판으로 사용하기 위해서는 덧칠이 필요할 수 있습니다. 8X8 체스판을 만들기 위해서 필요한 최소 덧칠 횟수를 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 ..

[구현/정렬] 백준 10814 나이순 정렬 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 2. 문제 풀이 회원들의 이름과 나이가 주어집니다. 나이에 대해 오름차순으로 정렬한 결과를 출력합니다. 단, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬해야 합니다. 2022.02.07 - [Algorithm] - [구현/수학] 백준 5635 생일 - Python [구현/수학] 백준 5635 생일 - Python [ Contents ] 1. 문제 (링크 참조) 5635번: 생일 어떤 반에 있는 학생들의 생일이..

[구현] 백준 1259 팰린드롬수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 2. 문제 풀이 2022.02.06 - [Algorithm] - [구현/수학] 백준 10988 팰린드롬인지 확인하기 - Python [구현/수학] 백준 10988 팰린드롬인지 확인하기 - Python [ Contents ] 1. 문제 (링크 참조) 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.n..

[구현/수학] 백준 2738 행렬 덧셈 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 2. 문제 풀이 크기가 N*M인 두 행렬을 더하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단..

[구현/수학] 백준 1453 피시방 알바 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net 2. 문제 풀이 PC방은 100번자리까지 있으며 모두 비어 있습니다. 사람들은 순서대로 원하는 자리를 지정해서 앉으며, 이전 사람이 미리 지정한 자리는 앉을 수 없습니다. 거절당한 사람들의 수를 구합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하..

[구현/수학] 백준 5635 생일 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 학생들의 생년월일을 입력받아 나이를 계산하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 나이가 가장 적은 사람과 많..

[구현/수학] 백준 10822 더하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10822번: 더하기 첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 한 줄로 주어지는 입력값을 받아, 더하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 3. 코드 num..

[구현/수학] 백준 9295 주사위 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9295번: 주사위 각 테스트 케이스마다 "Case x: "를 출력한 다음, 주사위를 두 번 던져 나온 두 수의 합을 출력한다. 테스트 케이스 번호(x)는 1부터 시작한다. www.acmicpc.net 2. 문제 풀이 주사위 2개를 굴리고, 두 눈의 합을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory..

[구현/수학] 백준 11948 과목선택 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11948번: 과목선택 JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다. JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에 www.acmicpc.net 2. 문제 풀이 과탐 4과목과 사탐 2과목 점수를 입력받습니다. 가장 잘 본 과탐 3과목과 사탐 1과목의 점수합계를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞..

[구현/수학] 백준 1568 새 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1568번: 새 N마리의 새가 나무에 앉아있고, 자연수를 배우기 원한다. 새들은 1부터 모든 자연수를 오름차순으로 노래한다. 어떤 숫자 K를 노래할 때, K마리의 새가 나무에서 하늘을 향해 날아간다. 만약, 현 www.acmicpc.net 2. 문제 풀이 주어진 새가 모두 날아가기까지 몇 초가 걸리는지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단..

[구현/수학] 백준 10801 카드게임 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10801번: 카드게임 두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, www.acmicpc.net 2. 문제 풀이 10라운드 동안, A와 B가 카드게임을 합니다. 라운드마다 1~10까지의 카드 중 1개씩 내며, 더 높은 숫자를 낸 사람이 점수를 얻습니다. 비겼을 경우에는 점수가 없습니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 ..

[구현/수학] 백준 11557 Yangjojang of The Year - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 2. 문제 풀이 가장 많은 술을 마신 학교를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기..

[구현] 백준 4458 첫 글자를 대문자로 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4458번: 첫 글자를 대문자로 첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다. www.acmicpc.net 2. 문제 풀이 문장 속 단어의 첫 글자를 대문자로 바꾸는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 sta..

[구현/수학] 백준 9610 사분면 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9610번: 사분면 2차원 좌표 상의 여러 점의 좌표 (x,y)가 주어졌을 때, 각 사분면과 축에 점이 몇 개 있는지 구하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 주어진 좌표가 4분면 및 축 중 어디에 속하는지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com x, ..

[구현/수학] 백준 3058 짝수를 찾아라 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3058번: 짝수를 찾아라 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 7개의 자연수가 공백으로 구분되 www.acmicpc.net 2. 문제 풀이 입력된 수 중 짝수의 합과 최솟값을 찾는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어..

[구현] 백준 2711 오타맨 고창영 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2711번: 오타맨 고창영 첫째 줄에 테스트 케이스의 개수 T(1

[구현/수학] 백준 9086 문자열 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 2. 문제 풀이 주어진 문자열의 첫 글자와 마지막 글자를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이..

[구현/수학] 백준 2592 대표값 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2592번: 대표값 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30, 20, 60, 30, 40, 50의 평균은 www.acmicpc.net 2. 문제 풀이 10개의 자연수의 평균과 최빈값을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 ..

[구현/수학] 백준 2744 대소문자 바꾸기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2744번: 대소문자 바꾸기 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 입력된 단어의 대소문자를 변환하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 파이썬은 대소문자..

[구현/수학] 백준 7567 그릇 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 7567번: 그릇 그릇을 바닥에 놓았을 때 그 높이는 10cm 이다. 그런데 두 개의 그릇을 같은 방향으로 포개면 그 높이는 5cm만 증가된다. 만일 그릇이 서로 반대방향으로 쌓이면 높이는 그릇만큼, 즉 10cm 늘어난다. www.acmicpc.net 2. 문제 풀이 주어진 그릇의 높이를 구하는 문제입니다. 그릇의 높이는 10cm이며, 포갤 경우에는 5cm만 늘어납니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다..

[구현/수학] 백준 10988 팰린드롬인지 확인하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 2. 문제 풀이 회문(팰린드롭, Palindrome): 거꾸로 읽어도 원래와 같은 문장이나 단어 주어진 문자열이 팰린드롭인지 판별하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기..

[구현/수학] 백준 2476 주사위 게임 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2476번: 주사위 게임 첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. www.acmicpc.net 2. 문제 풀이 주사위 3개를 던집니다. 주사위 눈의 결과로 상금을 얻습니다. - 같은 눈이 3개: 10000 + (같은 눈) * 1000 - 같은 눈이 2개: 1000 + (같은 눈)*100 - 모두 다른 눈: (가장 큰 눈) * 100 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유..

[구현/수학] 백준 10807 개수 세기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 2. 문제 풀이 N개의 정수 중 정수 v가 몇 개인지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없..

[구현/수학] 백준 5717 상근이의 친구들 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5717번: 상근이의 친구들 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 두 정수 M과 F로 이루어져 있으며, 각각은 상근이의 남자 친구의 수와 여자 친구의 수이다. (1 ≤ M, F ≤ 5) 입력의 마지막 www.acmicpc.net 2. 문제 풀이 주어지는 남자친구와 여자친구의 수를 합하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 ..

[구현/수학] 백준 5988 홀수일까 짝수일까 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 5988번: 홀수일까 짝수일까 짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기 www.acmicpc.net 2. 문제 풀이 주어진 수가 홀수인지 짝수인지 판단하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문..

[구현/수학] 백준 10103 주사위 게임 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10103번: 주사위 게임 첫 라운드는 상덕이의 승리이다. 따라서 창영이는 6점을 잃게 된다. 두 번째 라운드는 두 사람의 숫자가 같기 때문에, 아무도 점수를 잃지 않고 넘어간다. 세 번째 라운드의 승자는 창영이이기 www.acmicpc.net 2. 문제 풀이 두 사람의 주사위 게임 점수를 구하는 문제입니다. 매 라운드마다 두 사람은 주사위(1~6)를 굴립니다. 낮은 숫자가 나온 사람은 상대편 주사위 눈만큼 점수를 잃게 됩니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니..

[구현/수학] 백준 9325 얼마? - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9325번: 얼마? 해빈이는 학교를 다니면서 틈틈히 번 돈으로 자동차를 사려고 한다. 자동차에 여러 가지 옵션을 포함시킬 수 있는데 해빈이는 덧셈과 곱셈을 하지 못하기 때문에 친구 태완이에게 도움을 청했 www.acmicpc.net 2. 문제 풀이 자동차와 옵션을 모두 합한 가격을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 s..

[구현/수학] 백준 9625 BABBA - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 2. 문제 풀이 A -> B -> BA -> BAB -> BABBA 맨 처음 A가 주어지고, 버튼을 누를 때마다 위와 같은 규칙으로 변환됩니다. 모든 B는 BA로 바뀌고, A는 B로 바뀌는 규칙입니다. K번 눌렀을 때 A와 B의 개수를 구해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Conte..

[구현/수학] 백준 2587 대표값2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 2. 문제 풀이 5개의 자연수가 주어질 때, 평균과 중앙값을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한..

[구현/수학] 백준 1735 분수 합 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 2. 문제 풀이 두 분수의 합을 구하는 문제입니다. 다만, 그 합은 기약분수여야 합니다. 2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm..

[Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [내부링크]

유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm) 두 자연수 X, Y가 있을 때 (단, X > Y) 1) X와 Y의 최대공약수는 'X를 Y로 나눈 나머지'와 'Y'의 최대공약수와 같다. - 큰 수를 작은 수로 나눈 나머지가 0이 될 때까지 반복 2) X와 Y의 최대공약수는 'X를 Y로 뺀 값'과 'Y'의 최대공약수와 같다. - X와 Y가 같아질 때까지 큰 수를 작은 수로 빼며 반복 두 수의 최대공약수는 작은 수로 빼거나, 나눈 나머지로 구한 최대공약수와 같습니다. 유클리드 호제법을 이용하면, 1부터 Y까지 공약수 유무를 판별하지 않고도 최대공약수를 구할..

[구현/수학] 백준 2460 지능형 기차 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 2. 문제 풀이 10개의 기차역에 승하차한 사람들의 수가 주어집니다. 무조건 먼저 하차하고 승차하며, 기차 안에 머문 최다 승객수를 구합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절..

[수학/브루트포스] 백준 1075 나누기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 100이상의 N이 주어질 때, 뒷 두자리를 적절히 바꿔서 F로 나누어지게끔 하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, ..

[구현/수학] 백준 4101 크냐? - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4101번: 크냐? 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이 www.acmicpc.net 2. 문제 풀이 두 양의 정수가 주어졌을 때, 대소를 비교하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문..

[구현/수학] 백준 2506 점수계산 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net 2. 문제 풀이 OX문제의 점수를 계산하는 문제입니다. 맞으면 1점, 틀리면 0점입니다. 연속으로 맞출 경우, 1점씩 추가점수가 늘어납니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하..

[구현/수학] 백준 9085 더하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9085번: 더하기 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 첫 줄에 자연수의 개수 N(1 ≤ N ≤ 100)이 주어지고, 그 다음 줄에는 N개의 자연수가 주어진다. 각각의 자연 www.acmicpc.net 2. 문제 풀이 N개의 자연수가 주어지면 합을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이..

[구현/수학] 백준 1748 수 이어쓰기 1 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 2. 문제 풀이 123456789 10111213141516 ... 100101102 1부터 N까지의 수를 이어서 쓸 때, 그 수의 길이를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tis..

[구현/수학] 백준 15953 상금 헌터 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 www.acmicpc.net 2. 문제 풀이 주어진 등수의 상금을 구하는 문제입니다. 상금표에 나온 대로 조건문을 작성합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리..

[구현/수학] 백준 학점계산 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2754번: 학점계산 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. A+: 4.3, A0: 4.0, A-: 3.7 B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 www.acmicpc.net 2. 문제 풀이 학점이 주어지면, 평점을 계산하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞..

[구현/수학] 백준 9375 패션왕 신해빈 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 2. 문제 풀이 가지고 있는 옷과 옷의 종류를 입력받고, 가능한 의상의 조합 수를 계산하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문..

[브루트포스/수학] 백준 2501 약수 구하기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 2. 문제 풀이 N의 K번째 약수를 구하는 문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운 접근법입니다. 모든 경우의 수를 시험해보며 문제를 해결합니 star7sss.t..

[구현/수학] 백준 2875 대회 or 인턴 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 2. 문제 풀이 여자 2명, 남자 1명이 팀을 이뤄 대회에 출전합니다. 여자 N명, 남자 M명이 주어질 때, 최대 팀 수를 구하는 문제입니다. 단, 학생들 중 일부(K명)는 반드시 인턴십에 참여해야 해서 대회에 출전할 수 없습니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입..

[구현/수학] 백준 1292 쉽게 푸는 문제 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 2. 문제 풀이 1 2 2 3 3 3 4 4 4 4 .... 위와 같은 규칙을 가진 수열의 구간합을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래..

[구현/수학] 백준 10156 과자 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10156번: 과자 첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이 www.acmicpc.net 2. 문제 풀이 과자를 사는 데 필요한 용돈을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없..

[구현/수학] 백준 1011 Fly me to the Alpha Centauri - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 2. 문제 풀이 X부터 Y까지의 최소 이동 장치 작동횟수를 구합니다. 이동거리는 1광년부터 시작하며, 그 이후에는 ±1, 0광년만큼 조정이 가능합니다. 단번에 2이상으로 이동거리를 늘리거나 줄일 수 없습니다. Y에 도착할 때의 이동거리도 1광년이어야 하며, 이를 만족하기 위해서는 이동거리의 함수가 포물선을 이뤄야 합니다. 2022.01.19 - [Algorithm] - ..

[수학/그리디] 백준 1541 잃어버린 괄호 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 2. 문제 풀이 -와 +로 이루어진 식에 임의로 결합법칙을 적용해 최소값을 만드는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로..

[구현/수학] 백준 11050 이항 계수 1 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 2. 문제 풀이 nCk = n! / (k!(n-k)! 조합(Combination) = 이항계수를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.ti..

[구현/수학] 백준 1026 보물 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 2. 문제 풀이 S = A[0] x B[0] + ... + A[N-1] x B[N-1] 2개의 배열을 서로 곱해서 최소 합을 구하는 문제입니다. S값을 최소로 만들기 위해 A의 수의 재배열해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 ..

[구현/수학] 백준 4153 직각삼각형 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 2. 문제 풀이 직각삼각형 성립여부를 따지는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.t..

[구현/수학] 백준 10773 제로 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 2. 문제 풀이 입력받은 정수의 합을 구하는 문제입니다. 단, 0을 입력할 경우 최근 입력된 값을 빼줘해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절..

[구현/수학] 백준 1181 단어 정렬 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 2. 문제 풀이 문자열을 정렬하는 문제입니다. 길이가 짧은 순으로 정렬하되, 길이가 같을 때는 사전 순으로 정렬합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩..

[구현/수학] 백준 1427 소트인사이드 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 입력받은 숫자의 각 자릿수를 내림차순 정렬하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하 star7sss.tistory.com 정렬 문제입니다. 다만, 입력받은..

[구현/수학] 백준 2751 수 정렬하기 2 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2. 문제 풀이 N개의 수가 주어졌을 때, 오름차순으로 정렬하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법..

[그리디/Greedy] 백준 11047 동전 0 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 2. 문제 풀이 주어진 동전 단위 내에서, 최소 동전 개수로 거슬러주는 문제입니다. 2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 ..

[구현/수학] 백준 1193 분수찾기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 2. 문제 풀이 위와 같은 순서로 배열되는 분수의 규칙을 파악하는 문제입니다. 입력으로는 정수 X가 주어지며, 위와 같은 규칙에 따라 X번째 분수를 출력해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 패..

[구현] 백준 2941 크로아티아 알파벳 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 2. 문제 풀이 'c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=' 크로아티아 알파벳이 섞인 문자열의 길이를 구하는 문제입니다. 크로아티아의 알파벳은 2개 이상의 문자 조합으로 표현하며, 1개로 취급합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제..

[분할정복/DQ] 백준 2630 색종이 만들기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 2. 문제 풀이 잘라진 하얀색 색종이와 파란색 색종이의 개수를 구하는 문제입니다. 정사각형의 색종이에 하얀색과 파란색이 섞여 있을 경우, 분리될 때까지 4분할을 합니다. 입력으로 주어지는 색종이의 크기는 2, 4, 8, 16, 32, 64, 128 중 하나입니다. 2022.01.29 - [Algorithm] - [Algorithm] 분할정복(DQ, Divide-and-Conquer), 각..

[Algorithm] 분할정복(DQ, Divide-and-Conquer), 각개격파 알고리즘 [내부링크]

각개격파(各個擊破): 적을 하나하나 따로 떼어 무찌름 유독 외세의 침략을 많이 받았던 우리 민족의 대표적인 전술은 '매복'과 '각개격파'였습니다. 70%가 산악지형인 점을 이용해서, 산개된 적들을 각각 무찔렀습니다. 이런 각개격파 전술은 '알고리즘 문제'에서도 유효합니다. 사람 사는 세상의 이치는 만물이 통하니까요. [ Contents ] 1. 분할 정복 알고리즘 분할 정복(Divide-and-Conquer, DQ): 주어진 문제의 입력을 분할하여 해결하는 방식 알고리즘 문제도 분할해서 풀면, 쉽게 해결되는 경우가 많습니다. 예를 들어, 방대한 데이터(100GB)를 오름차순으로 정렬하는 문제는 그대로 해결할 수 없습니다. 한 번에 정렬을 하려면, 데이터베이스의 모든 데이터를 메인 메모리(RAM)에 올려야..

[구현/수학] 백준 10872 팩토리얼 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 팩토리얼을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 반복문을 이용하면 쉽게 구할 수 있는 문제입니다. 괜히 어설프게 재귀함수를 사용하면 시간초과가 ..

[구현/수학] 백준 2908 상수 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 2. 문제 풀이 숫자를 거꾸로 변환하고 크기 비교하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.t..

[구현/수학] 백준 4673 셀프 넘버 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 2. 문제 풀이 10000이하의 셀프 넘버를 출력하는 문제입니다. 셀프 넘버의 규칙은 다음과 같습니다. 생성자 d(n): 자기 자신(n)과 각 자리수를 더한 수 Self Number: 생성자가 없는 수 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현..

[구현/수학] 백준 10818 최소, 최대 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 문제 풀이 N개의 정수 중 최솟값과 최댓값을 찾는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, ..

[구현/수학] 백준 2588 곱셈 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 2. 문제 풀이 세 자리 수 곱셈 과정을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 문제의 예시로 나온 세 자릿수 곱셈을 그대로 출력하라고 했다면 어려울 뻔 했습니..

[구현/수학] 백준 10871 X보다 작은 수 - Python, C [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 문제 풀이 X와 N개로 이루어진 수열이 주어지며, X보다 작은 수를 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 ..

[구현/수학] 백준 2753 윤년 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 2. 문제 풀이 주어진 연도가 윤년인지 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 st..

[구현/수학] 백준 2739 구구단 - Python, C [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 2. 문제 풀이 구구단 N단을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 단순 구현문제입니다. 반복문과 출력형식만 알고 있으면 쉽게 풀 수 있습니다. 3..

[구현/수학] 백준 1000 A+B - Python, C [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 2. 문제 풀이 두 정수 A, B를 입력받아 더한 값을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 백준의 '입문 문제'입니다. A+B를 출력하는 아주 단순한 문제지만, Pytho..

[구현/수학] 백준 3052 나머지 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 2. 문제 풀이 10개의 수를 입력받아 42로 나눈 나머지 중 중복값을 제거한 개수를 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com ..

[Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 [내부링크]

경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다른 말이 뒤나 앞에서 뛰고 있으면 주의가 산만해지고 피하게 된다고 합니다. 그래서 양 옆의 시야를 차단하는 '차안대'를 착용합니다. [ Contents ] 1. 그리디 알고리즘 그리디 알고리즘(Greedy Algorithm): 근시안적인 선택으로 부분적인 최적해를 얻고, 이를 통해 문제의 최적해를 찾는 방식 '그리디 알고리즘'도 이와 비슷합니다. 최적해를 찾기 위해, '앞'만 보고 달려갑니다. 다시 뒤로 되돌아가지 않으며, 현재 상황에서 최적인 결정을 합니다. 매번 전체적으로 최적인지 고려하는 과정이 없으므로..

[구현/수학] 백준 4344 평균은 넘겠지 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 2. 문제 풀이 평균을 넘는 점수 비율을 출력하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tistory.com 간단한 수학문제입니다. 다만 입력/출력 형식이 조금..

[수학/DP] 백준 2839 설탕 배달 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 2. 문제 풀이 주문시킨 설탕을 최대한 적은 봉지로 배달하는 문제입니다. 용량은 5kg와 3kg로, 최대한 5kg로 배달하는 게 좋습니다. 단, 주문량을 초과하거나 미달하면 안되며, 배달할 수 없는 경우는 -1를 출력합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유..

[Python] 사용자로부터 여러 입력값 받기 input().split() [feat. 형변환] [내부링크]

2022.01.24 - [PL (Programming Language)/Python] - [Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting) [Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting) 2022.01.23 - [PL (Programming Language)/Python] - [Python] 변수(Variable)와 자료형(Data type) [Python] 변수(Variable)와 자료형(Data type) 2022.01.23 - [PL (Programming Language)/Python] - [Python] p.. star7sss.tistory.com 파이썬의 사용자 입력함수 input()를 배워보고, split()를 이용해서 여러 값을 한 번에 입력받는 것..

[Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting) [내부링크]

2022.01.23 - [PL (Programming Language)/Python] - [Python] 변수(Variable)와 자료형(Data type) [Python] 변수(Variable)와 자료형(Data type) 2022.01.23 - [PL (Programming Language)/Python] - [Python] print() 함수로 알아보는 프로그래밍 함수의 정의 저번 시간에 print를 통해 프로그래밍 함수에 대해 알아봤습니다. 이 시간에는 변수와 자료형에.. star7sss.tistory.com 파이썬은 직접 자료형을 지정하지 않아도, 데이터에 따라 자동으로 자료형을 설정해줍니다. 이는 연산에서도 마찬가지입니다. 연산 결과에 따라 알맞은 자료형을 자동으로 설정해줍니다. 이를 자동 형..

[구현/수학] 백준 1546 평균 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 2. 문제 풀이 자신이 받은 최고점을 '만점'으로 두고 평균을 계산하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만..

[Python] 파이썬 id함수로 알아보는 변수의 특성 (메모리 주소와 변수의 대응관계, 포인터) [내부링크]

[ Contents ] 1. 데이터와 변수 공간 2022.01.23 - [PL (Programming Language)/Python] - [Python] 변수(Variable)와 자료형(Data type) [Python] 변수(Variable)와 자료형(Data type) 2022.01.23 - [PL (Programming Language)/Python] - [Python] print() 함수로 알아보는 프로그래밍 함수의 정의 저번 시간에 print를 통해 프로그래밍 함수에 대해 알아봤습니다. 이 시간에는 변수와 자료형에.. star7sss.tistory.com 파이썬은 데이터를 변수 공간에 저장합니다. 데이터는 음식이고, 변수 공간은 그릇이라고 볼 수 있습니다. 그릇은 여러 번 재사용할 수 있죠. 이..

[Python] 변수(Variable)와 자료형(Data type) [내부링크]

2022.01.23 - [PL (Programming Language)/Python] - [Python] print() 함수로 알아보는 프로그래밍 함수의 정의 저번 시간에 print를 통해 프로그래밍 함수에 대해 알아봤습니다. 이 시간에는 변수와 자료형에 대해서 알아보겠습니다. 지금은 이해가지 않으시더라도, 이후 프로그래밍을 더 배우다보면 자연스레 알게 됩니다. 조급해하지 마시고, 진도를 이어가주시기 바랍니다. [ Contents ] 1. 변수(Variable) 변수(Variable): 프로그래밍에서 사용하는 데이터를 담아두는 공간(메모리) '변수'는 프로그램에서 사용하는 데이터를 저장해두는 공간을 뜻합니다. 그릇이 있어야 음식을 담을 수 있듯이, 데이터도 변수 공간이 있어야 저장할 수 있습니다. 2. ..

[구현/수학] 백준 2577 숫자의 개수 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 2. 문제 풀이 세 수를 곱한 결과의 각 자릿수 숫자를 세는 문제입니다. 각 자릿수마다 숫자가 몇 번씩 쓰였는지를 구해야 합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결..

[Python] print() 함수로 알아보는 프로그래밍 함수의 정의 [내부링크]

첫 파이썬 시간입니다. 여태까지 파이썬 개발환경을 구축하시느라 수고하셨습니다. 이번 글에서는 print() 함수와 프로그래밍에서의 함수가 어떤 건지에 대해 알아보겠습니다. [Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 1. 웹 브라우저 인터프리터 사용하기 파이썬은 웹 인터프리터를 통해서 설치 없이 사용할 수도 있습니다. 1) 온라인 파이썬 컴파일러 (Online Python Compiler) Online Python Compiler - Online Python Editor.. star7sss.tistory.com [Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나콘다) 2022.01.21 - [PL (Programming Language)/Python] ..

[C/C++] 비주얼 스튜디오 코드 다운로드/설치하기 [VScode, Visual Studio Code] [내부링크]

2022.01.14 - [PL (Programming Language)/C] - [C] C언어 컴파일러 설치 (비주얼 스튜디오, Dev c++) [C] C언어 컴파일러 설치 (비주얼 스튜디오, Dev c++) C언어로 쓴 코드를 실행시키기 위해서는 '컴파일러'가 필요합니다. C 컴파일러로는 대개 3가지 종류가 있습니다. Visual Studio Visual Studio Code Dev C/C++ Visual Studio는 큰 프로젝트를 개발하는 데에.. star7sss.tistory.com C++ 프로그래밍을 위해서는 C++ 컴파일러/IDE가 필요합니다. 학습용으로 가볍고 빠른 IDE는 Dev C/C++이 있으며, 위 링크에서 설치하실 수 있습니다. 하지만 프로젝트를 진행하는 데에는 무리가 있습니다. V..

[구현/수학] 백준 1110 더하기 사이클 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 2. 문제 풀이 0~99 사이의 정수가 입력값으로 주어집니다. 원래의 값으로 돌아가기 위해서는 몇 번의 '더하기 사이클'이 필요한지 구하는 문제입니다. '더하기 사이클'의 규칙은 다음과 같습니다. 각 자리의 숫자를 더합니다. 주어진 수의 1의 자리와 더해서 만든 수의 1의 자리를 이어 붙입니다. 즉 A + B = CD 일 때, BD가 산출됩니다. 예를 들어, 55는 5+5 = 10 이므로 50. 5+..

주피터 노트북 확장 프로그램 (NBextensions) 설치 및 설정하기 (feat 마크다운 책갈피/목록) [내부링크]

요즘은 모든 기능 갖춘 IDE보다는 플러그인/확장프로그램으로 추가하는 에디터가 대세입니다. Atom이나 VScode, 그리고 주피터 노트북도 마찬가지입니다. 주피터 노트북은 NBextensions로 추가 확장프로그램을 설치할 수 있습니다. [ Contents ] 1. NBextensions 설치 주피터 터미널에서 위 3줄을 입력하거나, 주피터 파일에서 !로 명령어를 수행할 수도 있습니다. !pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions !jupyter contrib nbextension install --user !jupyter nbextensions_configurator enable --user 위 코드를 실행해주..

주피터노트북(Jupyter Notebook) 기본 사용법, 단축키 (실행, 중지, 재시작, 마크다운) [내부링크]

[Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 1. 웹 브라우저 인터프리터 사용하기 파이썬은 웹 인터프리터를 통해서 설치 없이 사용할 수도 있습니다. 1) 온라인 파이썬 컴파일러 (Online Python Compiler) Online Python Compiler - Online Python Editor.. star7sss.tistory.com [Python] 주피터 노트북(Jupyter Notebook) 다운로드/설치방법 (아나콘다 이용) 2022.01.21 - [PL (Programming Language)/Python] - [Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나콘다) [Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나..

[Python] 주피터 노트북(Jupyter Notebook) 다운로드/설치방법 (아나콘다 이용) [내부링크]

2022.01.21 - [PL (Programming Language)/Python] - [Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나콘다) [Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나콘다) 2022.01.21 - [PL (Programming Language)/Python] - [Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 [Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 1. 웹 브라우저.. star7sss.tistory.com 이전 글에 파이참 IDE를 설치하는 방법을 다뤘습니다. 컴파일러 언어(C, C++, Java 등)를 사용하시던 기존 개발자분들에게는 참 익숙한 IDE입니다. 마치 파이..

[Python] 파이참(PyCharm) IDE 다운로드/설치하기 (아나콘다) [내부링크]

2022.01.21 - [PL (Programming Language)/Python] - [Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 [Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 1. 웹 브라우저 인터프리터 사용하기 파이썬은 웹 인터프리터를 통해서 설치 없이 사용할 수도 있습니다. 1) 온라인 파이썬 컴파일러 (Online Python Compiler) Online Python Compiler - Online Python Editor.. star7sss.tistory.com 이전 글에서 아나콘다를 통해 파이썬을 설치했습니다. 별다른 프로그램 없이도 '명령 프롬프트'에서 파이썬을 사용할 수 있습니다. 하지만 굳이 그럴 필요는 없죠. 이번 글에..

[Python] 파이썬 웹 인터프리터(컴파일러) or 아나콘다 다운로드/설치 [내부링크]

목차 1. 웹 브라우저 인터프리터 사용하기 파이썬은 웹 인터프리터를 통해서 설치 없이 사용할 수도 있습니다. 1) 온라인 파이썬 컴파일러 (Online Python Compiler) Online Python Compiler - Online Python Editor - Online Python IDE - Python Coding Online - Practice Python Online - Execute Pyth www.tutorialspoint.com 위 링크에서는 로그인 없이 간단하게 이용해볼 수 있습니다. 2) 구글 코랩 (Google Colaboratory) Google Colaboratory colab.research.google.com 구글에서도 웹 파이썬 개발환경을 제공합니다. 구글 계정만 있으..

[구현/수학] 백준 2884 알람 시계 - Python, Java [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 2. 문제 풀이 45분 이른 시간을 구하는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 star7sss.tisto..

[Java] 이클립스 환경설정, 프로젝트 및 클래스 생성 방법 (feat 다크모드) [내부링크]

2022.01.20 - [PL (Programming Language)/Java] - [Java] 자바 이클립스 설치/다운로드 방법 (Eclipse IDE, 컴파일러) [Java] 자바 이클립스 설치/다운로드 방법 (Eclipse IDE, 컴파일러) [Java] JDK(자바개발도구) 설치/다운로드 방법 Java는 JVM이라는 가상 머신 위에서 동작합니다. 덕분에 어떤 컴퓨터든 JVM만 설치되어있으면 Java를 사용할 수 있습니다.... 그런데 조금 설치과정이 복 star7sss.tistory.com 이클립스 IDE 설치까지 수고하셨습니다. 설치하셨으니 이제 써봐야겠죠? 간단한 설정부터 사용법을 알려드리겠습니다. [ Contents ] 1. 이클립스 테마 변경 (Feat. Dark Mode) 저는 다크모드..

[Java] 자바 이클립스 설치/다운로드 방법 (Eclipse IDE, 컴파일러) [내부링크]

[Java] JDK(자바개발도구) 설치/다운로드 방법 Java는 JVM이라는 가상 머신 위에서 동작합니다. 덕분에 어떤 컴퓨터든 JVM만 설치되어있으면 Java를 사용할 수 있습니다.... 그런데 조금 설치과정이 복잡합니다. JDK 설치 (JRE 등 부가 프로그램도 star7sss.tistory.com [Java] JDK 환경변수 설정하기 (자바 환경변수 경로지정) JDK만 설치하면, JDK가 어디에 있는지 컴퓨터가 찾질 못합니다. 환경변수를 설정해서 자바 JDK가 어디에 있는지 알려줘야 합니다. 1. JDK 폴더 경로 찾기 설치할 때 Next만 누르셨다면, 위 사진 속 star7sss.tistory.com (JDK 및 환경변수 설정을 안 하신 분들은 위 링크를 통해 해주시기 바랍니다.) Java는 개발..

[Java] JDK 환경변수 설정하기 (자바 환경변수 경로지정) [내부링크]

2022.01.20 - [PL (Programming Language)/Java] - [Java] JDK(자바개발도구) 설치/다운로드 방법 [Java] JDK(자바개발도구) 설치/다운로드 방법 Java는 JVM이라는 가상 머신 위에서 동작합니다. 덕분에 어떤 컴퓨터든 JVM만 설치되어있으면 Java를 사용할 수 있습니다.... 그런데 조금 설치과정이 복잡합니다. JDK 설치 (JRE 등 부가 프로그램도 star7sss.tistory.com (java JDK 설치가 되어있어야 합니다. 위 링크를 통해서 설치 후 진행해주세요.) JDK만 설치하면, JDK가 어디에 있는지 컴퓨터가 찾질 못합니다. 환경변수를 설정해서 자바 JDK가 어디에 있는지 알려줘야 합니다. [ Contents ] 1. JDK 폴더 경로 ..

[Java] JDK(자바개발도구) 설치/다운로드 방법 [내부링크]

Java는 JVM이라는 가상 머신 위에서 동작합니다. 덕분에 어떤 컴퓨터든 JVM만 설치되어있으면 Java를 사용할 수 있습니다.... 그런데 조금 설치과정이 복잡합니다. JDK 설치 (JRE 등 부가 프로그램도 같이 깔립니다.) 환경변수 설정 이클립스 IDE 설치 1번부터 차근차근 같이 설치해보겠습니다. [ Contents ] 1) 오라클 홈페이지 접속 https://www.oracle.com/java/technologies/downloads/ 위 링크를 통해 오라클 JDK 다운로드 사이트로 이동합니다. 여기서 중요한 점은 JDK8 버전을 다운로드 받으셔야 합니다. 최신버전이 좋은 게 아닙니다. 맨 아래에 있는 JDK8버전을 운영체제에 맞게 골라주세요. x64인지, x86인지 모르시는 분들은 [ 내 P..

[Java] 객체지향의 대표주자, 자바의 특징과 공부방법 [내부링크]

[ Contents ] 1. Java언어의 기원 Sun Microsystems에서 1995년에 개발했습니다. 무미건조한 C, C++, C#과 달리, JAVA라는 특이한 이름을 갖고 있습니다. 이 이름이 에피소드도 특이한데, 바로 Java 커피에서 유래되었습니다. 개발자와 커피는 떼어놀 수 없다고들 하지만, 커피 이름으로 짓는 건 아이러니하네요. 하긴 tv프로그램 이름으로 지은 Python도 있으니.... 딱히 이름에는 별 의미를 두지 않는 듯합니다. 2. Java의 특징 Java는 대표적인 객체지향 프로그래밍 언어입니다. java.lang.Object는 모든 클래스들의 최상위 클래스로, 모든 요소들이 클래스 안에 담겨져 있습니다. C++처럼 클래스 밖을 벗어나는 예외가 없습니다. 그렇기 때문에, 가장 긴..

[구현/수학] 백준 2576 홀수 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 2576번: 홀수 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지 www.acmicpc.net 2. 문제 풀이 7개의 자연수 중 홀수의 합과 홀수의 최솟값을 찾는 문제입니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번 문제, 구현 / 수학 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, ..

[구현/수학] 백준 13458 시험 감독 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 2. 문제 풀이 N개의 시험장에 배치할 최소 감독관 수를 구하는 문제입니다. 시험장에는 1명의 총감독관이 입실하며, 필요에 따라 부감독관이 추가로 입실합니다. 총감독관은 수험생 B명을, 부감독관 당 수험생 C명을 감독가능합니다. 2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학 [Algorithm] 단골 1번..

[Algorithm] 단골 1번 문제, 구현 / 수학 [내부링크]

[ Contents ] 1. 구현 단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할 수 있는 쉬운 문제입니다. 그래서 코딩 시험이나 알고리즘 대회에서 손풀기 문제로 출제가 됩니다. 요즘은 구현 Part에 자료구조를 물어보는 경우도 늘고 있지만, 대체로 문제를 이해하기만 하면 풀 수 있는 문제입니다. 2. 수학 구현 문제는 특정 규칙을 찾아내야 하는 경우도 있습니다. 수열처럼 입력값이 증가함에 따라 변하는 출력값의 규칙을 찾아야 합니다. 패턴만 찾으면, 코딩은 쉽습니다. 반면, 직접적으로 수학 이론을 요구하는 경우도 있습니다. 소수 판별이 대표적인 예입니다. '에라토스 테네스의 ..

[Brute Force] 백준 1182. 부분수열의 합 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 2. 문제 풀이 N개의 정수에서 뽑은 부분 수열의 합이 S가 되는 경우의 수를 구하는 문제입니다. 모든 경우의 수를 시험해봐야 하므로, 브루트 포스문제입니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? 1. 브루트 포스란? Bru..

[C++] C++이란? 포인터 제어, 객체지향, 제네릭 프로그래밍의 복합체 [내부링크]

[ Contents ] 1. C++언어의 기원 C++언어는 C언어를 계승한 프로그래밍 언어입니다. 과거 C언어로 짜여진 라이브러리와 프로그램와 호환하기 위해서, C언어 문법도 그대로 사용가능합니다. C언어에 객체지향과 Generic Programming 패러다임을 추가한 버전으로, 1983년에 만들어져 지금까지 업데이트 되고 있습니다. 2. C++언어의 특징: 범용성, 높은 성능, 낮은 개발효율성 C++만 잘해도 뭐든지 할 수 있다고 할 정도로, 범용성이 높은 프로그래밍 언어입니다. C++로 하드웨어 시스템, OS, 프로그램, 서버도 만들 수 있습니다. 스타크래프트를 예로 들면, 피쉬서버도 C++기반이였고 W런쳐도 C++로 만든 프로그램이었습니다 다른 고급 언어들보다 속도가 빠르기 때문에, Unity 엔..

[Brute Force] 백준 1759. 암호 만들기 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 암호는 "오름차순"으로 서로 다른 L개의 알파벳 소문자들로 구성되며, 최소 한 개의 모음(a, e, i, o, u)과 최소 두개의 자음으로 구성되어 있습니다. 입력은 암호의 길이인 L과 사용 가능한 알파벳이 주어집니다. 단순히 길이가 L인 알파벳 나열이므로, 브루트 포스 접근법으로 풀이합니다. 2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법? ..

[Brute Force] 백준 10819. 차이를 최대로 - Python [내부링크]

[ Contents ] 1. 문제 (링크 참조) 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 2. 문제 풀이 | A[0] - A[1] | + | A[1] - A[2] | + ... + | A[N-2] - A[N-1] | 주어진 N개의 정수를 임의의 순서대로 배열해서 최댓값을 구하는 문제입니다. 왠지 모르게 오름차순 정렬한 뒤에, | A[N-1] - A[0] | + | A[N-2] - A[1] | + ... 이런 식으로 하면 되지 않을까? 하는 생각을 했습니다. 하지만 절댓값의 합이니 | 음수 - 양수 | 또는 | 양수 -..

[Algorithm] 브루트 포스(Brute Force)는 노가다 기법? [내부링크]

[ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운 접근법입니다. 모든 경우의 수를 시험해보며 문제를 해결합니다. 브루트 포스 접근방법은 일상에서도 많이 사용합니다. 예를 들어, 자물쇠 비밀번호 4자리를 맞추기 위해 0000부터 9999까지 모두 시험해보는 것도 대표적인 '브루트 포스' 방식입니다. 2. 순열과 조합 경우의 수를 계산하다보니, 순열과 조합 기본지식이 필요합니다. 단순히 순서가 있는건 '순열', 순서가 없는 건 '조합'이라는 정도만 상기하시면 됩니다. 복잡한 수식을 외우지 않더라도, 이미 라이브러리로 구현되어 있습니다. 각 언어에서 지원하는 라이브러리를 불러오셔서 쓰시면 됩니다...

[C] 프로그래밍 함수의 정의와 출력함수 printf() [내부링크]

[ Contents ] 1. 프로그래밍에서 함수란? C언어에서는 다양한 기능의 함수를 사용해서 프로그램을 작성합니다. 수학에서의 함수와 비슷합니다. 입력값 x를 받아서 출력값 f(x)를 반환하는 식입니다. printf(x) 함수는 '화면에 출력하는 함수'로, x를 입력받아 화면에 x를 출력합니다. 2. 인수와 파라미터 인수(Argument): 함수의 입력값 파라미터(Parameter, 매개변수): 함수의 미지수 위 f(x) 함수에서 파라미터는 x입니다. 만약 x = 1을 인수로 입력하면 f(1) = 4가 나올 겁니다. 이는 프로그래밍 함수에서도 똑같으며, 둘의 차이를 잘 알고 있어야 합니다. 함수에 입력되는 값이 '인수'이며, 항수 정의에 쓰이는 미지수가 '파라미터'입니다. 3. printf 함수 pri..

[C] stdio.h 라이브러리와 printf(), int main(), return 0; [내부링크]

#include int main(){ printf("hello world!"); return 0; } C언어의 대표적인 기본 구문입니다. 처음 프로그래밍을 배우시는 분들은 이해하기 어려우실 수 있습니다. 지금 배우는 내용은 이해하지 못해도 상관없으니, 편하게 봐주시면 됩니다. 나중에 프로그래밍에 익숙해지면 자연스레 이해가 됩니다. 그럼 하나하나 살펴보겠습니다. #include #include는 라이브러리를 import(불러오기)한다는 뜻입니다. 여기서 라이브러리는 도서관의 library랑 동일한 단어입니다. 마치 도서관에 여러 책들이 있는 것처럼, C언어의 라이브러리도 여러 함수들이 모여있습니다. 그 중 stdio는 STanDard Input/Output (표준 입출력)의 약자로, 파일/콘솔 창에 입력 ..

[C] C언어 컴파일러 설치 (비주얼 스튜디오, Dev c++) [내부링크]

C언어로 쓴 코드를 실행시키기 위해서는 '컴파일러'가 필요합니다. C 컴파일러로는 대개 3가지 종류가 있습니다. Visual Studio Visual Studio Code Dev C/C++ Visual Studio는 큰 프로젝트를 개발하는 데에 적합한 IDE(통합개발환경)로, 현업 개발자나 전공생들이 많이 사용합니다. 저 역시도 Visual Studio로 프로젝트를 진행했고, 안정성과 기능성이 뛰어납니다. 하지만 그 만큼 무겁고 느립니다. 15GB가 넘으며 설치 시간도 1~2시간이 넘게 걸립니다. 따라서 C언어로 큰 프로젝트를 진행하실 게 아니라면, 굳이 사용하실 필요는 없습니다. Visual Studio Code(VS code)는 무겁고 느린 Visual Studio의 단점을 보완하고자 나온 '소스코드..

[C] C언어란? 기원과 특징, 공부방법 [내부링크]

[ Contents ] 1. C언어의 기원 C언어는 1972년에 벨 연구소의 데니스 니치가 만든 프로그래밍 언어입니다. 기존에 있던 B언어를 계승해서 만들었기 때문에 C언어로 명명되었습니다. C언어 이후로는 우리가 알다시피 C++, C#으로 계승되었으며, C++은 C언어와 완전히 호환됩니다. 그래서 C/C++이라는 표현을 자주 볼 수 있으며, C언어 코드를 .cpp(C++확장자)로 해도 잘 작동합니다. 반대로 C++코드를 .c(C확장자)로는 실행할 수 없습니다. 2. C언어의 특징 어셈블리어(저급언어)의 특징 중 하나인 실행이 빠르다는 장점을 살리면서, 비교적 인간이 이해하기 편하게 만든 고급 언어입니다. 개발자 친화적인 Java나 Python와 달리 기계어에 더 가까우며, 어셈블리어나 이진코드(기계어)..

[Data Visualization] 게시판 소개 [내부링크]

해당 게시판은 데이터를 효과적으로 시각화하는 방법을 소개합니다. 데이터 시각화 도구는 'Python 라이브러리'와 '태블로 Tableau'를 사용합니다. 태블로는 최신 BI(Business Intelligence) 툴로 간단하면서도 효과적으로 데이터를 시각화할 수 있습니다. 많은 기업에서 태블로를 사용하고 있으며, 채용 우대사항에 '태블로 작업능력'이 추가되는 추세입니다. 다만 태블로는 유료 프로그램이기 때문에 개인도 라이선스 비용을 지불해야 합니다. Tableau Public public.tableau.com 하지만 대학생이면 1년간 무료로 Tableau Desktop버전을 이용할 수 있으며, 일반인도 Public 버전으로 무료로 웹상에서 사용하실 수 있습니다. Desktop의 일부 기능이 제한되긴 하..

[Algorithm] 게시판 소개 [내부링크]

문제해결을 위한 다양한 알고리즘들의 원리를 이해하고, 응용 예제를 살펴봅니다. 예제는 백준 온라인 저지에 있는 문제들을 활용할 예정입니다. 구현 수학 그리디 알고리즘 다이나믹 프로그래밍 그래프 이론 탐색론 . . . Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 알고리즘 예제 풀이에 사용되는 주 언어는 Python을 사용합니다.

[Activities] 게시판 소개 [내부링크]

대회, 공모전, 동아리, 캠프, 전시회, 축제 관람 등 다양한 활동 이력들을 소개합니다. 1) 캠프/교육 프로그램 제 1회 특허캠프 2) 대회/공모전 3) 전시회/박람회/축제행사 4) 동아리/모임활동 게임개발동아리 플럼(Plum) 기업가정신 교육봉사단체 티우미(Tiumi) 독서커뮤니티 북뿜뿜 러닝동아리 STRC 특허 데이터톤 대회(IP-R&D 경진대회) 참가 후기/리뷰 특허 데이터톤 대회(IP-R&D 경진대회) 대회기간 : 2019. 08. 26 ~ 2019. 08. 27 (무박 2일) 장소 :... blog.naver.com 위 링크에서는 이전 블로그에서 작성한 일부 활동 리뷰를 살펴볼 수 있습니다. (앞으로는 해당 티스토리에 업데이트할 예정입니다.)

[Project] 게시판 소개 [내부링크]

진행했던 Project에 대한 간략한 소개와 함께 구현방법, 코드를 설명합니다. Seoultech Explore: HTML5, CSS, javaScript 기반 웹 게임 STRC 러닝 데이터베이스: Oracle 기반 데이터베이스 SNUT_RoadSign: Java 기반 GUI map navigator Wine Quality Web Visualization: D3.js 기반 웹 시각화 도구 Patent_BigDataAnalysis: Spark-Scala 기반 빅데이터 자연어처리 Cartpole: Open AI gym 기반의 Cartpole 강화학습 ST Fair Route: 안드로이드 기반의 길찾기앱 Patent_server: Django 기반의 특허분석 플랫폼 서버 LoL Real-time win rat..

[Python] 파이썬이란? 개념과 응용, 공부방법 [내부링크]

Contents 1. 인터프리터 언어 파이썬(Python)은 인터프리터 기반의 프로그래밍 언어입니다. 인터프리터 방식은 코드 한 줄씩 실행하며 결과를 바로바로 확인할 수 있는 장점이 있습니다. 그에 반해 C, C++, Java와 같은 프로그래밍 언어는 컴파일러 언어로 전체 코드를 컴파일합니다. 인터프리터 방식은 한 줄씩 실행하므로 중간 결과는 빠르게 살펴볼 수 있지만, 컴파일러 방식보다 비효율적이고 전체 실행속도가 느립니다. 컴파일러 방식은 IDE(Integrated Development Environment, 통합개발환경)에서 전체 코드를 분석해서 효율적으로 컴파일해주기 때문입니다. 또한 Python은 간단한 문법으로 쉽게 사용할 수 있지만, 그만큼 속도가 느립니다. (고급언어의 특성) 2. 가장 인기..

[IT/CS] Star가 되고나서 창설 [내부링크]

IT를 전문으로 다루는 티스토리를 개설했습니다. 해당 티스토리에서는 전공자 위주의 CS지식을 다룹니다. Data Visualization: 데이터 시각화 (Python Lib, Tableau) Data Engineering: DB 관리, 데이터 전처리 및 파이프라인 구축 Algorithm: CS 알고리즘 (Greedy, DP 등) AI (Artificial Intelligence): 선형대수 및 확률통계에 기반한 머신러닝 알고리즘과 딥러닝, 강화 학습 PL (Programming Language): 프로그래밍 언어 (C, C++, Java, Python) 그 외 Projects, Acvitivities는 제 개인적인 활동들을 기록합니다. PL은 2009년부터 제가 운영해온 [star가 되기위해] 블로그를..

[Algorithm] 알고리즘 유형 길라잡이 [내부링크]

 알고리즘 유형을 소개합니다. [ Contents ] 1. 구현/수학 [Algorithm] 단골 1번 문제, 구현 / 수학 [ Contents ] 1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출..

태그 길라잡이 [내부링크]

star가 되고나서 머신러닝 및 답러닝 알고리즘을 이용한 데이터 분석과 시각화를 주로 다루는 IT 블로그입니다. (C, C++, Java, Python, Scala) star7sss.tistory.com  전체 태그는 위 링크에서 보실 수 있으며,..