본문 바로가기
반응형

알고리즘 PS (백준)67

[백준 2161번] java(자바) 큐(Queue) 개념과 활용 - 카드1 카드1 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 버린 카드들은 순서대로 1 3 2가 되고, 남는 카드는 4가 된다. N이 주어졌을.. 2022. 7. 21.
[백준 9012번] java(자바) 스택(stack) 개념과 활용 - 자료구조 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 .. 2022. 7. 19.
[백준 1436번] 영화감독 숌 - java(자바) 브루트포스 알고리즘 영화감독 숌 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 숫자란 어떤 수에 6이 적어도 3개이상 연속으로 들어가는 수를 말한다. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 .. 2022. 7. 14.
[백준 19939번] 박 터뜨리기 - java(자바) 그리디 알고리즘 7월 12일, 제가 공군 입대한 다음 날이네요ㅎㅎ 폰이나 블로그를 할수 없으므로 이 포스트 부턴 미리 작성한 글을 예약 발행한 것입니다. 오늘 부터 매주 화목에 발행 예약 해놨으므로 매주 화목에 보러오세요! 박 터뜨리기 문제 K개의 팀이 박 터트리기 게임을 한다. 각 팀은 하나의 바구니를 가지고 있고, 바구니에 들어있는 공을 던져서 자기 팀의 박을 터트려야 한다. 우리는 게임을 준비하기 위해서, N개의 공을 K개의 바구니에 나눠 담아야 한다. 이때, 게임의 재미를 위해서 바구니에 담기는 공의 개수를 모두 다르게 하고 싶다. 즉, N개의 공을 K개의 바구니에 빠짐없이 나누어 담는데, 각 바구니에는 1개 이상의 공이 있어야 하고, 바구니에 담긴 공의 개수가 모두 달라야 한다. 게임의 불공정함을 줄이기 위해서.. 2022. 7. 12.
[파이썬 python] Matplot 설치 및 활용 (데이터 시각화 , 그래프) 1. pip 설치하기(윈도우 / 맥 mac) pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준 윈도우는 python3.9 말고 python 으로 하세요! 2. pip로 matplot 설치하기 (python -m pip install --upgrade pip) - pip 설치 윈도우 $ python -m pip install matplotlib 맥 mac 3.9 버전 $ python3.9 -m pip install matplotlib matplot 데이터 시각화 라이브러리로 다양한 형태의 그래프 그리기 기능을 제공합니다. 인공 지능 연구 분야에 많이 활용하고 아래와 같이 작성해서 사용할 수 있습니다. -import matplotlib.pyplot – import .. 2022. 6. 19.
[파이썬 python] Pandas 설치 및 활용 (데이터 프레임) pandas 란?데이터 프레임을 효과적으로 다룰수 있는 라이브러리로 , panel datas의 약자로 파이썬 기반 데이터 분석에서 많이 사용되는 라이브러리 립니다. 사용방법import pandasimport pandas as pd판다스 설치하는 법 1. pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준윈도우는 python3.9 대신에 python을 입력하세요!2. pip를 이용해서 pandas 설치윈도우 cmd$ python -m pip install pandas맥 터미널 (3.9 버전 기준)$ python3.9 -m pip install pandas데이터 프레임데이터 프레임은 행(인덱스)와 열(컬럼)으로 구분되는 테이블형 데이터 베이스입니다.인덱스는 별도로 지.. 2022. 6. 7.
[파이썬 python] : numpy 설치 및 활용 (배열 , 수학/행렬연산 , 코싸인 유사도) numpy 모듈 과학 연산과 인공지능 행렬 연산을 위해서 설계된 파이썬 라이브러리 입니다. 다차원 배열 처리와 수학 기능들을 쓸수 있고 , 내부적으로 c언어 구현되어있어 매우 빠르고 효율적입니다. 설치하기(윈도우 / 맥 mac) pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준 윈도우는 python3.9 대신에 python을 입력하세요! pip로 numpy 설치하기 윈도우 cmd python -m pip install numpy 맥 터미널 (3.9 버전 기준) python3.9 -m pip install numpy numpy array 생성하기 numpy의 array 메소드를 통해 배열로 변환할수 있습니다. numpy의 arange 함수 (리스트의 range와 .. 2022. 6. 2.