일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- append
- hash
- 백준 1806번 부분합 java
- Stack
- 코틀린기초
- 백준 2473번 세 용액 - java
- 백준 14938번 서강그라운드
- 백준 2467번 용액 자바 - 이분탐색
- HashMap
- kotlin
- StringTokenizer
- dp
- 프로그래머스 java
- 최소 힙 1927
- 백준 1647번 도시 분할 계획 - java
- 백준 3190번
- ac 5430번
- HashSet
- Java
- toUpperCase
- 프로그래머스 자바
- 백준 1197번 최소 스패닝 트리 - java
- StringBuilder
- map
- 백준 1541
- mysql hy000 에러
- 백준 1043번 거짓말 - java 분리 집합
- 프로그래머스
- replace()
- 18111번 마인크래프트 - java 구현
- Today
- Total
목록전체 글 (177)
말하는 컴공감자의 텃밭
스프링은 대규모 애플리케이션을 자바로 만들때 필요한 프레임워크이며, 구현을 위한 프레임 워크가 아닌 설계를 위한 프레임워크이다. 스프링 이론을 공부하면서 부족하고 헷갈린것들을 정리 해보려한다. 히ㅏ호하하ㅏ 스프링 동작 규정을 정의 해 놓은 파일 - Bean: 특정한 일을 독립적으로 수행하는 컴포넌트이다. - 자바빈: JSP에서 사용되는 데이터를 저장 및 관리하기 위한 컴포넌트이다. - Annotation: 자바 코드에 주석을 달아 특별한 의미를 부여한다. 이 의미는 컴파일 타임 또는 런타임으로 해석된다. 여기서 어노테이션은 클래스와 메서드에 추가해서 다양한 기능을 부여하는 역할이다. 코드량을 줄일 수 있고 유지보수하기 쉬워진다. @~ 방식으로 사용된다. @Test void 예외_테스트() { assert..
또 귀여운 캐릭터가 등장 했다. 문제를 요약하면 한줄에 이름 두개가 공백으로 주어지고, 그 중 한사람이 총총의 춤을 추고있다면 너무 흥이나서 만난 사람도 춤을 추게 된다. 바이러스 이런거였으면 다른 분위기 였을거 같다.. 초기에는 chongchong이만 춤을 알고 있고 동명이인은 없으며 대소문자를 구분한다.\ 시작해봅시다. 중복이 없어야 하면? Hash. 다른 요소가 없기 때문에 Hash set에 넣어주고 Hash.size()가 답이겠네오 HTML 삽입 미리보기할 수 없는 소스
귀여운 곰곰이가 눈에 뛰는 문제이다. 문제를 정리하면 채팅방에 사람이름이 주어진다. ENTER 입력 이후 첫번째로 등장하는 이름의 로그는 인사를 뜻한다. 이는 결국 곰곰이로 인사한다를 뜻한다. 따라서 ENTER이후로 첫번째로 등장하는 이름의 수를 (곰곰이 등장~) 체크해서 출력하면 되는 문제이다. 중복을 없앤다 를 보자마자 Hash를 떠올려야 한다. Hash 해시는 키와 데이터를 저장해주는 구조이므로 키는 1개여야 하기 때문에 중복을 허락하지 않는다. 이런 특성 때문에 암호, 메시지 인증 등에 자주 등장한다. Hash Map은 키랑 데이터를 매핑하는 구조이므로 벨류가 필요없는 우리는 Hash Set을 활용해보자 HTML 삽입 미리보기할 수 없는 소스 스캐너가 익숙해서 인풋을 스캐너로 처리하는 바라에 공백..
문제를 보자마자 조합? 이라고 생각했다. 출처: https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2608F34059202A5833 왼쪽 다리놓을 포인트와 오른쪽 다리 놓을 포인트가 주어지고, 그 사이에서 다리 를 연결할 수 있는 경우의 수 이다. 다리는 겹쳐지는것이 허용되지 않는다. 그럼 뭐 순서가 필요없는 조합이자나요~ 다리 1개만 놓을건데. 다만 수가 굉장히 크기 때문에 Big Integer을 사용하거나, 모든 경우의 수를 저장해놓고 더하는 방식으로 진행했다. 조합에서 파스칼 삼각형을 사용하여 점화식을 적용했다. 출처 : https://namu.wiki..
간단해 보여서 단계가 높지만 풀어보았다. X가 1보다 큰 제곱수로 안나뉘면 '제곱 ㄴㄴ수'라고 칭하는데 제곱수는 정수의 제곱으로 입출력이 굉장히 크기에 효율성이 중요한 문제라고 생각이 들었다. 최대한 빠르게 소수를 판별하는 알고리즘을 찾아봤다. 아레토스테네스의 체 가 있었다. 간단하게 정리하면 2부터 원하는 범위까지의 수를 나열하고 소수를 우측에 써가며 해당하는 배수를 모두 지우는 방식이다. 예시의 범위가 120까지인데 11^2 > 120 이므로 11보다 작은 배수만 지워도 충분한게 장점이다. 2,3,5,7 의 배수만 지우면 모두 소수이기 때문이다. 이전의 값들은 선행으로 처리되므로 반복연산의 시작점이 달라 효율적이라고 할 수 있다. 그렇다면 연산의 시간복잡도는 Max -min 의 모든 수에서 제곱수를 ..
지민 국왕이라니,, 잠만보려나 단순한 그리디 문제이다. B를 재배열하면 안된다고는 했지만 ㅎㅅㅎ 그냥 풀기 쉬우려면 정렬하면 그만이다. 가장 큰수와 가장 작은값끼리 곱하면 최소값이기에 sorting해서 반대로만 붙여주면 된다. ex) 1 3 2 4 와 4 2 1 3이 있다면 정렬 후 -> 1 2 3 4, 1 2 3 4 역순으로 붙여주면 된다. 1 * 4 + 2 * 3 + 3 * 2 + 4 * 1 HTML 삽입 미리보기할 수 없는 소스
단순 구현문제이다. N번째는 N의 배수의 창문을 열고 열려있으면 닫는다. 창문은 홀수번 열어야 열려있는 상태이므로 약수가 세개인 경우를 생각하다가 제곱수를 떠올렸다. 제곱수는 모두 약수가 3개이다. ex) 4 -> 4, 2, 1 / 9 - > 9, 3, 1 HTML 삽입 미리보기할 수 없는 소스 단순하게 생각했다면 메모리 문제가 있었을듯 싶다.
문제가 길다. 정리하면 1과 0으로 나뉘어진 정사각형의 색종이가 주어지고, N/2로 나누면서 정사각형이 모두 한 색인 경우 정복이 끝난경우이다. 전부 나눈 후 나뉘어진 파란색 1 과 하얀색 0의 개수를 출력하면 된다. 입력된 종이는 이차원 배열로 받아주고, 재귀함수를 쓰기위해 div 함수를 선언했다. if( (paper[x][y] - paper[x+i][y+j]) != 0 ) 를 통해서 같은 숫자끼리 영역에 존재하는지 확인했고, boolean chk 를 통해서 영역내에 다른 색상이 있는지 판단하여 존재할 시 재귀함수를 호출했다. 범위는 4등분하여 x, y, n을 다시 재귀함수에 넣어줬다. HTML 삽입 미리보기할 수 없는 소스