Java
-
[JAVA] 1748번: 수 이어 쓰기1Algorithm/백준 알고리즘 2021. 7. 20. 11:39
문제 설명 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. 이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오. 1234567891011121314151617181920212223... 입력 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. 출력 첫째 줄에 새로운 수의 자릿수를 출력한다. 풀이 1. length변수를 선언하여 i가 length와 일치할 경우 length * 10을 해준다. => 2자릿수, 3자릿수.. 2. 자릿수가 증가함에 따라 자릿수당 해당 숫자가 위치해야함으로 cnt를 1증가 시켜준다. 3. 해당 자리만큼 temp에 cnt를 더해준다. 코드 /* - 1부터 N까지의 수를 이어서 쓰면 다음과 같이 ..
-
[JAVA] 1476번: 날짜 계산카테고리 없음 2021. 7. 19. 15:59
문제 설명 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된..
-
[JAVA] 3085번: 사탕 게임Algorithm/백준 알고리즘 2021. 7. 19. 13:49
문제 설명 상근이는 어렸을 적에 "봄보니 (Bomboni)" 게임을 즐겨했다. 가장 처음에 N×N크기에 사탕을 채워 놓는다. 사탕의 색은 모두 같지 않을 수도 있다. 상근이는 사탕의 색이 다른 인접한 두 칸을 고른다. 그 다음 고른 칸에 들어있는 사탕을 서로 교환한다. 이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다. 사탕이 채워진 상태가 주어졌을 때, 상근이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N이 주어진다. (3 ≤ N ≤ 50)사탕의 색이 다른 인접한 두 칸이 존재하는 입력만 주어진다. 다음 N개 줄에는 보드에 채워져 있는 사탕의 색상이 주어진다. 빨간색은 C, 파란색은 P, 초록..
-
[JAVA] 2309번: 일곱 난쟁이Algorithm/백준 알고리즘 2021. 7. 19. 10:32
문제 설명 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를..
-
[JAVA] 1929번: 소수 구하기Algorithm/백준 알고리즘 2021. 7. 18. 20:31
문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 에라토스테네스의 체 k=2부터 루트N이하까지 반복하여 자연수들 중 k를 제외한 k의 배수들을 제외시킨다. k=2일 경우, 2를 제외한 2의 배수를 모두 지워준다. k=3일 경우, 3을 제외한 3의 배수를 모두 지워준다. k=4일 경우, 이미 k=2에서 제외되었기 때문에 넘어간다. k=5일 경우, 5를 제외한 5의 배수를 모두 지워준다. 위와같은 방식을 반복하여 k=루트N까지 반복하는 방법이다. 코드 import ..
-
[JAVA] 17427번: 약수의 합2Algorithm/백준 알고리즘 2021. 7. 18. 18:24
문제 설명 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다. 자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 g(N)를 출력한다. 풀이 1. N의 최댓값이 1,000,000이므로 1부터 n까지 약수를 구한 후 합을 구하면 시간초과가 날 것이다. 2. 1부터 n까지의 약수를 적어보고 약수들의 갯수를 보면 규칙을 ..
-
[Spring] 객체지향 4가지Framework/Spring 2021. 7. 16. 23:52
캡슐화 캡슐화는 객체의 속성을 보호하기 위해 사용 Method 설계 - 속성이 선언되었으나 이의 상태를 변경하는 Method가 없다면 잘못 선언된 속성이다. - 실물 객체가 가진 기능을 모두 제공해주어야 한다. - 각각의 Method는 서로 관련성이 있어야 한다. - 객체 안의 Method는 객체 안의 속성을 처리해야 하며, 다른 객체를 전달받아 해당 다른 객체에 정의 된 속성을 직접 처리하면 안된다. - 단 Method에 실행에 필요한 값들은 객체의 형태가 아닌 매개변수의 형태로 전달되어져야한다. 장점 - 객체 지향의 패러다임 중 하나인 추상화를 제공한다. - 재 사용성 향상 무결성 - 보통의 캡슐화 코딩이라고 한다면, 주로 변수는 private로 선언하고 Method를 public으로 선언하는 형태를..
-
[Spring] 객체지향이란?Framework/Spring 2021. 7. 15. 00:06
객체지향의 등장 객체지향 이전에는 C언어처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 "절차 지향"이 주를 이루었다. => 이와 같은 코딩하는 언어들을 "절차지향 언어"라고 지칭한다. 이 당시에는 프로그램의 단위가 크지 않았고, 대체적으로 간단한 로직을 순차적으로 처리하여 결과를 얻는데 그쳤지만, 컴퓨터의 발전과 이로 인한 프로그램의 복잡도가 증가하며 이에 들어가는 유지보수, 개발기간등 다양한 방면에서 비효율이 발생하였다. 위의 비효울적인 부분을 개선하고자 "효과적인 개발방식"을 채택하게 되었고 객체지향의 특성인 추상화, 상속, 은닉, 재사용, 인터페이스등 여러 곳에서 객체지향으로 개발을 시작하였다. 객체지향이란 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의하고 절..