전체 글 171

BOJ/백준 - 10773 제로 JAVA

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net N번 반복하면서 입력된 수가 0이면, pop을 하고 아니면 push해준다. 그리고 스택에 남은 수들을 합해 출력해주면 끝! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.io.BufferedReader; import java.io.IO..

BOJ/백준 - 10828 스택 JAVA

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 걍,,걍 풀면 된다. 시간 줄이려고 StringBuilder를 써봤다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import java.io.BufferedReader; import java.io.IOExceptio..

BOJ/백준 - 2108 통계학 JAVA

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 뭔가 더 깔끔하게 풀 수 있는 방법이 있을 것 같은데,,,,,, 아무튼 여기서 가장 신경써야할 부분은 최빈값인데, '두 번째' 작은 값을 잘 확인해줘야 한다. 설명은 주석~! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4..

BOJ/백준 - 18870 좌표 압축 JAVA

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 문제 이해를 잘못해서 머리 박박 긁었던 문제 그니까, 배열을 오름차순으로 정렬해서 자기보다 작은 수가 몇개 있는지 알아보면 된다. 주의할 점은 출력할 때 입력받은 순서를 지킬 것! 설명은 주석에 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32..

프로그래머스 - K번째 수 JAVA

C++로 풀다보니 C++구현에만 익숙해서 자바로도 풀어보려고 한다. 정렬 문제를 풀어보자 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 1. 아무것도 모르고 푼거 우우,, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.util.*; class Solution { public int[] solution(int[] array, int[][] command..

BOJ/백준 - 7569 토마토 JAVA

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net https://deeepbreathing.tistory.com/167 BOJ/백준 - 7576 토마토 JAVA https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다... de..

spring 정리

역할과 구현을 구분하자. 인터페이스(역할)이랑 구현체 나누기 OCP원칙 : 개방폐쇄 DIP원칙 : 의존 관계 역전 원칙 : 인터페이스에 의존해라 - 역할 먼저, 구현은 그 다음에 만들기 - 인터페이스 뒤에 구현체가 하나만 있으면 뒤에 Impl이라고 적음 - 클래스 다이어그램은 전체고 객체 다이어그램은 new해서 동적으로 동적으로! - 단위테스트를 잘 하는게 중요하다. (=단위테스트 : 스프링/컨테이너의 도움 없이 순수하게 자바코드로 테스트하는 것) => 스프링부트 테스트는 실행이 오래걸림. 단위 테스트는 수천개가 있어도 몇초만에 금방 끝난다. 클라이언트 코드 : ~serviceImpl 생성자를 통한 주입 AppConfig에는 역할/구현이 한 눈에 보이는 것이 중요함! 드러나게 ★역할과 구현을 명확하게 분..

web 2021.08.27

BOJ/백준 - 7567 나이트의 이동 JAVA

https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 이전에 숨바꼭질이나 토마토 같은 문제랑 비슷하다. 나이트가 이동할 수 있는 위치를 x,y로 나눠서 각각 미리 설정해 놓는다. 그리고 범위 안에서 방문 여부를 체크해가며, visit배열에 몇 번째 이동인지 같이 저장한다. 목적지에 도착하면 visit[목적지X][목적지Y]를 출력해주자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ..

카테고리 없음 2021.08.27

BOJ/백준 - 1697 숨바꼭질 JAVA

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 야호..재미있는 숨바꼭질 놀이 수빈이의 위치를 이동하는 경우의 수는 X-1, X+1, X*2 세 가지 방법이 있다. 세 가지 방법을 다 다니면서 동생을 찾으면 되는데, visit배열을 이용해 방문체크도 하면서, 가장 빠른 시간도 구한다. 아니 최소인데,,, 뭐 어케 min값을 찾아야되는거 아닌가?할 수도 있는데(내가 그랬음) 걍 잘 생각해보면 어차피 방문했던 곳을 또 방..

BOJ/백준 - 7576 토마토 JAVA

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 토마토를 익혀보자 최소 날짜를 계산하면 되니까, visit배열을 이용해서 날짜를 세준다. 자세한 설명은 주석에~! 여기서도 주의할 점은 배열의 가로와 세로를 헷갈리면 안 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4..