일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA 공부
- JPA
- 스프링부트공부
- 프로그래머스
- Axon framework
- nestjs스터디
- 자료구조공부
- 플러터 개발
- Flutter
- 기술면접공부
- 플러터 공부
- 기술공부
- K8S
- 코테공부
- 스프링
- JPA공부
- DDD
- querydsl
- Kafka
- JPA스터디
- 자바공부
- JPA예제
- 카프카
- 스프링 공부
- nestjs
- 알고리즘공부
- nestjs공부
- 코테준비
- 스프링부트
- 스프링공부
- Today
- Total
DevBoi
[그리디 구현 예제] 본문
그리디는, 가장 최적의 해를 찾는 알고리즘이다.
우선 가장 쉬운 예제로 한번 테스트해보자
특정 금액 1260 원을 받았을때, 동전 거스름돈의 최소 개수를 구하는 로직이다.
그리드 관련 알고리즘은, 가장 큰 범위의 탐색 및 로직을 먹이는 것이다.
그다음 그리드 문제
처음에, %4가 0 일떄를 체크해서, 가장 나누기를 우선적으로 수행하면 된다.
해당 완전탐색으로, 풀어버리면된다.
저런문제가 나오면 완전탐색을 하라고 하는거니까.. 그냥 완전 탐색하면된다.
import java.util.*;
import java.lang.*;
class main2 {
public static void main(String[] args) {
//스캐너
Scanner sc = new Scanner(System.in);
//시간 입력받음
char[] datas = new char[2];
datas = sc.next().toCharArray();
//총 카운트
int count =0;
//입력받은 값의 x,y좌표
int y = datas[1] - 48;
int x = datas[0] - 96;
if(x-2 > 0 && x-2 <=8)
{
if(y + 1 > 0 && y + 1 <=8)
{
count += 1;
}
if(y - 1 > 0 && y + 1 <=8)
{
count += 1;
}
}
if(x+2 > 0 && x+2 <=8)
{
if(y + 1 > 0 && y + 1 <=8)
{
count += 1;
}
if(y - 1 > 0 && y + 1 <=8)
{
count += 1;
}
}
if(y-2 > 0 && y-2 <=8)
{
if(x + 1 > 0 && x + 1 <=8)
{
count += 1;
}
if(x -1 > 0 && x - 1 <=8)
{
count += 1;
}
}
if(y+2 > 0 && y+2 <=8)
{
if(x + 1 > 0 && x + 1 <=8)
{
count += 1;
}
if(x - 1 > 0 && x - 1 <=8)
{
count += 1;
}
}
System.out.println(count);
}
}
동일하게 완전 탐색으로, 문제 해결한다. 단순? 단순히 요구사항대로, 체크를 하면된다.
시뮬레이션이라고 생각하면된다.
'Algorithm > [Etc]' 카테고리의 다른 글
Stream 객체 api 관련 데이터 처리 공부 (0) | 2021.07.05 |
---|---|
DFS 관련 개념 정리 (0) | 2021.07.02 |
[자료구조 공부] Hashset 사용하기 (0) | 2021.06.26 |
[프로그래머스] 전화번호부 (0) | 2021.05.17 |
[프로그래머스] 완주하지 못한 선수 _ java 풀이 (0) | 2021.05.17 |