전체 글

· PS/BOJ
[Silver I] 극장 좌석 - 2302 문제 링크 성능 요약 메모리: 69100 KB, 시간: 8 ms 분류 다이나믹 프로그래밍 제출 일자 2023년 11월 6일 14:17:29 문제 설명 어떤 극장의 좌석은 한 줄로 되어 있으며 왼쪽부터 차례대로 1번부터 N번까지 번호가 매겨져 있다. 공연을 보러 온 사람들은 자기의 입장권에 표시되어 있는 좌석에 앉아야 한다. 예를 들어서, 입장권에 5번이 쓰여 있으면 5번 좌석에 앉아야 한다. 단, 자기의 바로 왼쪽 좌석 또는 바로 오른쪽 좌석으로는 자리를 옮길 수 있다. 예를 들어서, 7번 입장권을 가진 사람은 7번 좌석은 물론이고, 6번 좌석이나 8번 좌석에도 앉을 수 있다. 그러나 5번 좌석이나 9번 좌석에는 앉을 수 없다. 그런데 이 극장에는 “VIP 회원..
· CS
디자인 패턴 디자인 패턴이란 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴입니다. 디자인 패턴을 참고하여 개발할 경우 개발의 효율성과 유지보수성, 운용성이 높아지며, 프로그램의 최적화에도 도움이 됩니다. 따라서 다양한 디자인 패턴을 숙지하고 있다면 해당 패턴의 이름만으로 구조를 파악할 수 있게 되어 더욱 원활한 의사소통이 가능해집니다. Gamma 디자인 패턴이라고도 불리는 GoF 디자인 패턴이 가장 잘 알려진 디자인 패턴인데, 이는 디자인 패턴을 목적과 범위로 분류하였습니다. 목적에 따른 분류를 보자면, 디자인 패턴은 “생성”, “구조”, “행위” 중 한 가지의 목적을 갖는다고 하였습니다. 구분 유형 설명 목적 생성 객체 인스턴스 생성에 관여, ..
· PS/BOJ
[Gold V] 숨바꼭질 3 - 13549 문제 링크 성능 요약 메모리: 70388 KB, 시간: 652 ms 분류 0-1 너비 우선 탐색, 너비 우선 탐색, 데이크스트라, 그래프 이론, 그래프 탐색, 최단 경로 제출 일자 2023년 10월 15일 16:33:49 문제 설명 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이..
· PS/BOJ
[Silver IV] 나는야 포켓몬 마스터 이다솜 - 1620 문제 링크 성능 요약 메모리: 88056 KB, 시간: 264 ms 분류 자료 구조, 해시를 사용한 집합과 맵 문제 설명 안녕? 내 이름은 이다솜. 나의 꿈은 포켓몬 마스터야. 일단 포켓몬 마스터가 되기 위해선 포켓몬을 한 마리 잡아야겠지? 근처 숲으로 가야겠어. (뚜벅 뚜벅) 얏! 꼬렛이다. 꼬렛? 귀여운데, 나의 첫 포켓몬으로 딱 어울린데? 내가 잡고 말겠어. 가라! 몬스터볼~ (펑!) 헐랭... 왜 안 잡히지?ㅜㅜ 몬스터 볼만 던지면 되는 게 아닌가...ㅜㅠ (터벅터벅) 어? 누구지? 오박사 : 나는 태초마을의 포켓몬 박사 오민식 박사라네. 다솜아, 포켓몬을 잡을 때는, 일단 상대 포켓몬의 체력을 적당히 바닥으로 만들어놓고 몬스터 볼을 ..
· PS/BOJ
[Silver IV] 듣보잡 - 1764 문제 링크 성능 요약 메모리: 76048 KB, 시간: 80 ms 분류 자료 구조, 해시를 사용한 집합과 맵, 정렬, 문자열 문제 설명 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다. 듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명..
· iOS
로컬 알림 로컬 알림(로컬 푸시)는 앱 내부에서 미리 만든 특정 메시지를 iOS의 알림 센터를 통해 전달하는 방법으로, 앱이 종료되어 있거나 백그라운드 상태일 때도 메세지를 전달할 수 있는 방법 중 하나입니다. 로컬 알림은 iOS 스케줄러에 의해 발송되는데, 앱 내부에서 미리 메세지를 구성한 후 발송될 시간을 iOS 스케줄러에 등록해 두면 해당 시각에 맞추어 자동으로 발송합니다. 따라서 특정 시각에 뭔가를 알려주도록 처리할 때에도 로컬 알림을 사용할 수 있습니다. 로컬 알림은 주로 앱 델리게이트 클래스에 생성하게 되면 앱이 백그라운드 상태에 있을 때에도 알림을 줄 수 있어, 사용자의 이목을 집중시킬 수 있는 효과를 가질 수 있습니다. 과거에 로컬 알림을 처리하는 객체는 UILocalNotification..
· PS/BOJ
[Silver II] 최소 힙 - 1927 문제 링크 성능 요약 메모리: 81080 KB, 시간: 124 ms 분류 자료 구조, 우선순위 큐 문제 설명 널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다...
· PS/BOJ
[Silver III] 1로 만들기 - 1463 문제 링크 성능 요약 메모리: 87324 KB, 시간: 56 ms 분류 다이나믹 프로그래밍 문제 설명 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 풀이 연산의 최솟값을 구하는 문제이기 때문에 DP와 관련이 있을 것이라 예상하였고, 몇 가지의 수를 나열하여 규칙을 찾고자 하였..
Dev_Ted
프로그래밍 성장기