백준 23288 주사위 굴리기2 (JAVA)
·
BackEnd/알고리즘 공부
문제 설명 https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 처음 주사위는 지도 위에 윗면이 1, 아래는 6 처음 이동 방향은 동쪽 조건 점수 계산 문제에 대한 아이디어 이 문제를 해결하기 위해서는 필요한 메소드를 생각해야 할 필요가 있습니다. 주사위 움직이는 메소드 위치를 움직이는 메소드 방향을 정하는 메소드 점수를 계산하는 메소드 주사위를 움직이는 메소드 public static void moveDice(int dir) { ..
백준 17232 생명 게임 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/17232 17232번: 생명 게임 첫줄에는 바둑판의 세로길이, 가로길이를 나타내는 두 정수 N과 M, 준표가 바둑판을 관찰하고자 하는 시간 T가 주어진다. 두번째 줄에는 주위의 기준이 되는 정수 K, 각 칸의 다음 상황을 결정하 www.acmicpc.net 문제 설명 바둑판 안에서 계속 움직이는 생명에 위치를 알아내는 게임입니다. 이 때 각칸은 주위의 영향을 받습니다. 여기서 말한 주위는 색칠한 영역과 같이 현재 칸을 중심으로 둔 한 변의 길이가 (2K+1)인 정사각형 입니다. (단, 현재 칸 제외) 생존 : 만약 현재 칸에 생명이 있고, 주위에 a개 이상 b개 이하의 생명이 있다면 현재 칸의 생명은 다음 단계에 살아남는다. 고독 : 만약 현재 ..
자바에서 정렬에 대해
·
BackEnd/알고리즘 공부
유명한 정렬 알고리즘 시간복잡도 N^2 알고리즘 Bubble Sort (버블 정렬) 버블 정렬은 배열의 인접한 요소를 비교하고, 필요한 경우 위치를 바꾸는 방식으로 정렬을 수행합니다. 이 과정은 배열의 모든 요소가 올바르게 정렬될 때까지 반복됩니다. Selection Sort (선택 정렬) 선택 정렬은 배열을 반복적으로 탐색하여 가장 작은(또는 가장 큰) 요소를 찾아, 정렬되지 않은 부분의 첫 번째 위치와 교환하는 방식으로 작동합니다. 이 과정은 배열의 모든 요소가 정렬될 때까지 반복됩니다. 선택 정렬은 버블 정렬보다 일반적으로 더 효율적이지만, 큰 데이터 세트에 대해서는 여전히 비효율적입니다. Insertion Sort (삽입 정렬) 삽입 정렬은 배열의 각 요소를 이미 정렬된 부분에 적절한 위치에 삽입..
백준 16637 괄호 추가하기 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 문제 설명 괄호를 적절하게 추가하여 결과의 최댓값을 출력합니다. 8*3+5를 보면 (8*3)+5, 8*(3+5) 이렇게 2가지 경우가 있습니다. 이때 최댓값은 8*(3+5) = 64입니다. 문제에 대한 아이디어 이 문제는 연산자의 우선순위는 존재하지 않습니다. 그러므로 앞에서부터 계산을 하면 됩니다. 문제는 괄호를 어디에 넣어야 할지 선택을 해야 합니다. 괄호는 한 개만 들어갈 수도 ..
등대 (프로그래머스) JAVA
·
BackEnd/알고리즘 공부
https://school.programmers.co.kr/learn/courses/30/lessons/133500# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 한 줄로 축약해서 어느 등대에 촛불을 켜야 모든 뱃길에 불을 밝힐 수 있는지 찾는 프로그램을 만드는 것입니다. 1에 키면 2,3,4에 다 불을 킬 수 있고 5에 키면 6,7,8에 불을 킬 수 있어 결국 모든 곳에 불을 킬 수 있습니다. 문제에 대한 아이디어 이 문제를 보면 n개인 노드에서 간선이 n-1개이고 모든 등대까지 갈 수 있는 길이 모두 주어진다 했으므로 모든 노드가 연결되어..
백준 17298 오큰수 자바
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제설명 이 문제는 현재 자신의 오른쪽에서 가장 크지만 제일 왼쪽에 있는 숫자를 찾으면 됩니다. 예를 들어 3은 오큰수가 5이고 5는 오큰수가 2는 자신보다 작기 때문에 아니고 7이 됩니다. 문제에 대한 아이디어 이 문제를 제일 처음보고 느낀점은 뒤에서 부터 오면서 stack에 숫자를 집어 넣고 현재 자신의 수보다 작은 stack 안의 수는 빼주면 되지 않을까? 였습니다. 예를 들어 3 5 2 6 7이 있다..