본문 바로가기

분류 전체보기

(341)
[백준 / BOJ] 1938 통나무 옮기기 문제 출처 : https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4
[백준 / BOJ] 1747 소수 & 팰린드롬 문제 출처 : https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 숫자 N이 주어졌을때, N보다 크거나 같은수중 소수이면서 팰린드롬인 수중 가장 작은 수를 찾는문제다. 풀이 에라토스테네스의 채를 이용해 풀은문제다. 우선, 에라토스테네스의 채의 최대 범위를 지정해주기위해, N = 1,000,000일때, 소수이면서 팰린드롬인 수중 가장 작은수를 찾아보면, 1003001 이라는것을 알수있다. 따라서, 소수를 걸러주기..
[백준 / BOJ] 5430 AC 문제 출처 : https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 선영이는 AC라는 언어를 만들었다. AC정수배열에 연산을 하기위해 만든 언어이다. AC에는 R, D가 주어진다. R은 주어진 정수배열을 뒤집는 연산이고 D는 현재 정수배열의 가장앞 정수를 없애는 연산이다. 정수배열과 연산이 주어졌을때, 결과를 출력하는 문제였다. (지울수없는경우 error를 출력한다.) 풀이 구현 문제였다. 문자열 구현이 약한거같아서 일부러 찾아 푸는중인데, 역시나 구현이 쉽지는 않았다. 모든 연산에 대해 시뮬레이션을 수행..
[백준 / BOJ] 15732 도토리 숨기기 문제 출처 : https://www.acmicpc.net/problem/15732 15732번: 도토리 숨기기 첫째 줄에 상자의 개수 N(1 ≤ N ≤ 1,000,000)과 규칙의 개수 K(1 ≤ K ≤ 10,000), 도토리의 개수 D(1 ≤ D ≤ 1,000,000,000)가 주어진다. 그 후 K개 줄에는 A, B, C(1 ≤ C ≤ A ≤ B ≤ N)가 주어지며 A번 상자부터 www.acmicpc.net 수형이는 N개의 상자에 도토리를 숨기려한다. 이때, 도토리를 숨긴위치를 기억하기 쉽게하기위해 규칙있게 숨긴다. 예를들어, A상자부터 B상자까지 C간격으로 도토리를 숨긴다면, A 상자에 하나를 숨기고, A+C상자에 하나를 숨기고, A+2C상자에 하나를 숨기고..B상자에 마지막하나를 숨긴다. 상자의 수..
[디자인 패턴] 싱글턴 패턴 문제 - 파스타 (데코레이터, 옵저버, 팩토리) 책을 공부하며 새로운 문제를 만들고 구현한것을 기록한 게시글입니다. (이해한 내용을 바탕으로 작성했기 때문에, 내용이 정확하지않고 틀린부분이 있을수있으며, 예시가 패턴을 사용하기에 알맞지 않을수도있습니다) 싱글턴 패턴 클래스 인스턴스가 하나만 만들어지도록하며, 해당 인스턴스를 전역적으로 접근하도록함. 다중스레드를 이용할때, 싱글턴 패턴을 사용하면, 오류가 발생할수있다. (스레드가 동시에 클래스를 호출해, 인스턴스가 한개 초과로 생성된다거나..) 이를 방지하기위해, syncronized와 volatile을 사용한다. syncronized syncronized는 스레드간에 동기화를 시켜준다. A스레드와 B스레드가있다고하자. A스레드가 a메소드를 사용중일때, syncronized는 a메소드에 lock을건다. ..
[백준 / BOJ] 1305 광고 문제 출처 : https://www.acmicpc.net/problem/1305 1305번: 광고 세준이는 길 한가운데에서 전광판을 쳐다보고 있었다. 전광판에는 광고가 흘러나오고 있었다. 한참을 전광판을 쳐다본 세준이는 이 광고가 의미하는 것이 무엇인지 궁금해지기 시작했다. 전광 www.acmicpc.net 세준이는 길 한가운데에서 전광판을 보고있다. 전광판에는 광고가 나오고있다. 전광판의 크기는 전광판에서 한번에 보이는 문자열의 최대 길이를 나타낸다. 전광판의 크기 L과 세준이가 본 전광판의 글자가 주어졌을때, 가능한 광고길이중 최솟값을 출력하는 문제다. 풀이 모든경우를 보면, L^2이 되서 시간안에 통과하지못한다. KMP알고리즘을 이용해 푼문제다. 광고판에서 광고가 나올수있는 경우는 광고 A뒤에 똑같..
[백준 / BOJ] 17135 캐슬 디펜스 문제 출처 : https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net N*M배열에 적이있고 N-1번째 줄에 궁수가있다. 매 턴마다 궁수는 자기의 사정거리안에서 가장 가까운적(가까운적이 여러명이라면, 가장 왼쪽적)을 찾아 공격하고 궁수의 공격이 끝난후 적은 한칸 아래로 내려온다. 궁수는 일제히사격하므로, 한 적에게 여러궁수가 공격할수있다. 이때, 가장많은 적을 없애는 경우의 수를 구하는 문제다. 풀이 시뮬레이션 문제였다. 최악의경우 (N=15, M=15)일때 반복..
[디자인 패턴] 데코레이터 패턴 문제 - 노트북 책을 공부하며 새로운 문제를 만들고 구현한것을 기록한 게시글입니다. (이해한 내용을 바탕으로 작성했기 때문에, 내용이 정확하지않고 틀린부분이 있을수있으며, 예시가 패턴을 사용하기에 알맞지 않을수도있습니다) 데코레이터 패턴 - 객체에 추가 구성요소를 동적으로 더할 수 있는 패턴. (데코레이터를 사용하면, 유연하게 객체에 추가 구성요소를 넣을수있다.) 문제 노트북이 고장난 명진이는 노트북을 구매하기로 결심했다. 노트북의 종류는 3가지가 있으며, 각 노트북의 이름과 가격은 다음과같다. Mac - $1500 Gram - $1200 surf - $1100 노트북을 구매할때 부가옵션을 추가할수있으며, 부가옵션은 다음과 같다. Mac - Memory256GB $250 - Memory512GB $450 - Memory..