일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 디자인패턴
- 백준 12761번
- String 함수
- http 개념
- 백준 파이썬
- 도메인 주도 개발
- ddd
- 백준
- 도메인 주도 개발 시작하기
- hadoop
- 백준 12761
- golang
- 몽고디비 렘
- 고 배열
- 12761 돌다리
- 자바
- 백준 사이트
- domain driven develop
- 트리 순회
- 파이썬
- 우분투
- 자바 디자인 패턴
- 정렬
- MongoDB Realm
- go
- 12761번 돌다리
- golang struct
- http 완벽가이드
- 하둡
- flask
- Today
- Total
목록[ Algorithm ] (95)
개발바닥
문제 https://www.acmicpc.net/problem/9536 문제 해결 방법 HashMap을 사용해서 문제를 해결하였습니다. key 값= 동물 value값 = 동물 울음소리 로 보관하여서 value 값이 존재하지 않다면 출력하면 간단하게 문제를 해결하실 수 있습니다. 자바 사용하면서 몰랐던 사실은 nextInt 사용후 nextLine을 쓰고 싶다면 nextLine()을 한번 사용해주고 사용을 해야지 제대로 동작이 됩니다. 소스 코드 https://github.com/jokerKwu/java/blob/master/JavaStructure/src/BOJ/BOJ_9536.java
문제 https://www.acmicpc.net/problem/1485 실패한 이유 이렇게 많이 실패한 문제는 오랜만인거 같다... (결국엔 문제를 해결을 못해서 Crocus님 코드를 참조해서 풀었습니다.) 정사각형을 구하기 위해서 여러가지 방법을 생각을 해봤다. 1. 네 각이 90도 일경우 정사각형이므로 각도를 구해서 풀려고 했으나 마름모일 경우 수식을 어떻게 변경해야될지 몰라서 틀렸습니다. 2. 두 벡터를 구해서 내적을 해서 0이 나오면 90도 이므로 모든 점들에 2개에 벡터를 구해서 내적을 해서 0이 나오면 정사각형으로 판단하고 제출했지만... 계속 틀려서 결국 Crocus님 문제 해결 방법을 참조하였습니다. 문제 해결 방법 각 4변의 길이가 모두 같고 두 대각선에 길이가 같다면 정사각형으로 판단해..
문제 https://www.acmicpc.net/problem/2858 문제 해결 방법 2중 반복문을 통해서 모든 경우의 수를 구하였습니다. 가로 세로에 개수가 red가 되는지 먼저 확인 하였습니다. 2중 반복문에서 for( i ...... . ) for( j . .. . . .) 일 때 i는 세로길이이고 j는 가로길이 입니다. 개수를 구할때 세로가 왼쪽 오른쪽에 있고 가로가 위 아래 있으므로 *2를 해주어야됩니다. (i*2)+(j*2) 이렇게만 해주시면 안되고 아래 그림처럼 중복되는 부분이 있으므로 -4를 해주어야됩니다. 그리고 나서 brown도 마찬가지로 중복되는 부분을 빼준 값이 같을 경우 정답을 찾은 것이기 때문에 출력해주면 됩니다. 소스 코드 https://github.com/jokerKwu/B..
문제 https://www.acmicpc.net/problem/1748 문제 해결 방법 자리수 마다 필요한 자리수 개수를 구해서 입력 받은 수에 이전 자리수 까지 모두 더한 뒤 (입력받은 수 - 시작 자리수의 처음 수) * (시작 자리수) 를 더해주면 문제를 해결 하실 수 있습니다. 예제를 통해서 확인해 보겠습니다. 입력 받은 수가 120이라면 세자리 수 이므로 1의자리 , 10의 자리 수의 개수를 모두 더합니다. 9 + 180 이므로 189가 됩니다. 그리고 세자리수의 처음 수는 100이므로 입력 받은 수 120 에서 100을 빼면 20이지만 100에서 120까지에 총 개수는 21이므로 +1을 해주어야 됩니다. 그리고 나온 값에 입력받은 수에 자리수를 곱해주고 더해주면 원하는 값을 얻을 수 있습니다. ..
문제 https://www.acmicpc.net/problem/1251 문제 해결 방법 문제에서 주어진 조건으로 단어를 입력 받았을 때 세 등분으로 나눠서 각각 나눈 단어들을 뒤집어서 합친 단어가 사전순으로 가장 앞서는 것을 출력하는 문제입니다. 세 등분을 나눌 때 문제에서 단어길이가 최소 1이므로 (단어 처음인덱스를 0으로 가정하겠습니다.) 인덱스로 나눈다고 했을 때 단어에서 처음에 나눌 수 있는 범위는 0부터 (단어길이-2) 만큼 나눌 수 있으며 두번째 나눌 수 있는 i(처음 나눈 마지막 인덱스 값)+1 부터 (단어 길이 -1) 만큼 나눌 수 있고 마지막으로 j(두번째 나눈 마지막 인덱스 값)+1 부터 (단어 길이)만큼 나눌 수 있습니다. 글로 보면 어려울 수 있으므로 아래 그림으로 설명 드리겠습니다..
문제 https://www.acmicpc.net/problem/1239 실패한 이유 문제 조건에서 원의 중심을 지나는 선의 개수의 최댓값을 출력해야되는데 그냥 입력한 순에서 개수를 출력하였습니다. (문제 제대로 꼼꼼히 안봤습니다.) 문제 해결 방법 주어진 데이터를 가지고 합해서 정확하게 50이 될 때 이등분선이라고 합니다. 반복문을 돌려서 합이 50이 되는 것을 카운팅 하면 문제를 해결하실 수 있습니다. 여기서 한쪽이 50이되면 반대쪽도 마찬가지로 50이 되므로 카운팅을 한 후 2로 나누어서 출력해주어야 됩니다. 그리고 아래 예시처럼 2번 같은 경우에는 10 40 50 데이터를 입력받아서 차트를 그린모습입니다. 이 차트 경우에는 반복문을 통해서 충분히 잘나올 수 있지만, 1번 차트는 그냥 반복문을 돌리면..
문제 https://www.acmicpc.net/problem/1107 문제 해결 방법 명령어 최소 회수를 구하기 위해서 두가지로 나누었습니다. 1. 채널이동 후 버튼(+ , -) 이동하기 2. (+ - )버튼으로만 이동하기 이 두가지로 나누어서 명령어 횟수가 작은 값을 출력하였습니다. 소스 코드 https://github.com/jokerKwu/BOJ_Algorithm/blob/master/Brute%20force/BOJ_1107.cpp