백준 17299번 오등큰수 (Java)
문제 설명 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오등큰수 NGF(i)를 구하려고 한다. Ai가 수열 A에서 등장한 횟수를 F(Ai)라고 했을 때, Ai의 오등큰수는 오른쪽에 있으면서 수열 A에서 등장한 횟수가 F(Ai)보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오등큰수는 -1이다. 예를 들어, A = [1, 1, 2, 3, 4, 2, 1]인 경우 F(1) = 3, F(2) = 2, F(3) = 1, F(4) = 1이다. A1의 오른쪽에 있으면서 등장한 횟수가 3보다 큰 수는 없기 때문에, NGF(1) = -1이다. A3의 경우에는 A7이 오른쪽에 있으면서 F(A3=2) < F(A7=1) 이기 때문에, NGF(..
더보기
5장 아키텍처 - 아키텍처란?
프로그래밍 아키텍처란? 시스템을 구축했던 사람들이 만들어낸 시스템의 형태다. 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다. 그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수 되도록 만들어진다. 시스템 아키텍처는 동작여부와 관련이 있는가? 아예 없다고는 할 수 없으나 거의 관련이 없다. 형편없는 아키텍처를 가지는 프로그램도 작동은 잘한다. 하지만 이러한 프로그램들은 운영,배포,유지보수에서 문제된다. 아키텍처의 주목적 시스템의 생명주기를 지원하는 것 이다. 좋은 아키텍처는 시스템을 쉽게 이해하고,쉽게 개발하며,쉽게 유지보수하고,쉽게 배포하게 해준다. 궁국적인 목표는 시스템의 수명과..
더보기