반응형 분류 전체보기123 백준 1476. 날짜 계산 🅰 백준 1476. 날짜 계산 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net ✏️ 문제 풀이 전체 데이터가 7980밖에 안되므로 for문을 이용하여 돌려주었다. 들어오는 년도를 각각의 세 수의 차 % 각 수의 년도를 해주었을 때 전부 0이 나오는 년도가 정답이다. ✏️ 소스코드 package bruteforce; import java.util.*; import java.io.*; public class Main_실버5_1476_손은성 { public static void main(String[] args) thr.. 2021. 8. 26. 백준 11723. 집합 🅰 백준 11723. 집합 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net ✏️ 문제 풀이 비트마스크를 이용하여 푸는 문제이다 string.startsWith를 이용하여 각 문자열로 시작되면 데이터를 수정하게 하였다. 각 문자열 마다 연산해야 할 x의 위치가 정해져 있기 때문에 string.subString을 이용하여 x부터 끝까지 문자열을 읽어서 int형으로 변환하였다 변환 후 각 연산문자열에 맞춰 비트마스크를 이용하여 답을 구현하였다. ✏️ 소스코드 package bruteforce; import java.io.BufferedReader; i.. 2021. 8. 26. 2차원 배열을 1차원 배열로 관리하는 법 3*3 배열이 있다고 하자 1 2 3 4 5 6 7 8 9 행 : 3 열 : 3 이를 1차원 배열로 정리하면 1 2 3 4 5 6 7 8 9 index로는 0 1 2 3 4 5 6 7 8 이다. 여기서 6의 위치를 찾으려면 index 5이므로 int x = index / 열 int y = index % 열 즉 x = 5 / 3 = 1 y = 5 % 3 = 2 이므로 map[x][y] = map[1][2] = 6이다. 3*4 배열이 있다고 하자 1 2 3 4 5 6 7 8 9 10 11 12 행 : 3 열 : 4 마찬가지로 1차원 배열 index로 정리하면 0 1 2 3 4 5 6 7 8 9 10 11 이다. 여기서 7의 위치를 찾는다고 가정하자, 7은 index 값이 6이므로 int x = index /.. 2021. 8. 25. 3234. 준환이의 양팔저울 D4 🅰 SWExpert 3234. 준환이의 양팔저울 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ✏️ 문제 풀이 남아있는 무게를 오른쪽에 더해봤을 때 left보다 작으면 어차피 모든 부분에 적용 가능하기 때문에 따로 순열을 탐색 할 필요 없이, 나머지 케이스 수 만큼 sum에 더하고 backtracking을 하면 시간을 더 줄일 수 있다. 또한 비트마스킹을 이용하여 데이터를 관리하면 시간을 더 줄일 수 있다. JAVA언어 / 23,396 kb메모리 / 1,357 ms실행시간 / 1,555코드길이의 결과가 나왔다. np를 이용하여 들어온 데이터에 대한 모든 순열을 뽑아냈고, dfs 함수 안에서 기저조건으로는 추가.. 2021. 8. 20. 백준 16926. 배열 돌리기1 🅰 백준 16926. 배열 돌리기1 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net ✏️ 문제 풀이 먼저 배열이 주어졌을 때 돌려야 하는 배열의 개수를 구하는 것이 중요했다. 가로와 세로 중 최소값 / 2만큼 배열을 회전 시켜야한다. rotate함수를 이용하여 4가지 방향으로 회전을 시켜주었다. ✏️ 소스코드 package _0811; import java.util.Scanner; public class Main_실버.. 2021. 8. 20. 백준 2563. 색종이 🅰 백준 2563. 색종이 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net ✏️ 문제 풀이 겹치는 부분만 구하면 쉽게 풀 수 있다. 색종이를 2차원 배열로 생성하고, 10x10 색종이가 들어오면 그 위치에 1을 더해주었다. 만약 10x10 색종이 면적 내 1 이상인 부분이 있으면 겹치는 부분이므로 따로 cnt를 해주고 마지막에 전체 면적-cnt를 해줘서 영역의 넓이를 구해주었다. ✏️ 소스코드 package _0810; import java.util.Scanner; public class Main_실버5_2563_손은성.. 2021. 8. 20. 백준 1987. 알파벳 🅰 백준 1987. 알파벳 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net ✏️ 문제 풀이 dr, dc배열을 사용하여 위,아래,좌,우 방향을 저장해주었고 A-Z 까지 아스키코드-65를 해줘서 boolean형 check배열의 크기를 26으로 설정해주었다 (0 : 'A', 1 : 'B' .... 26 : 'Z') 방문한 알파벳은 check에 true표시를 해주었고, 재귀함수 수행 후 다시 돌아왔으면 이전에 방문한 위치를 다시 false표시 해주어서 다른 길로도 갈 수 있도록 해주었다. 알파벳을 방문할 때 .. 2021. 8. 20. 백준 3109. 빵집 🅰 백준 3109. 빵집 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net ✏️ 문제 풀이 오른쪽으로만 가는 방향만 생각하면 된다. 오른쪽 위, 오른쪽, 오른쪽 아래를 탐색 후 갈 수 있으면 간 후에 지나온 길은 true로 방문 표시해준다. 기저조건으로 파이프가 빵집의 위치인 C-1에 도착했다면 return을 해주고 다른 케이스들이 재귀를 돌면서 추가 파이프가 생기지 않게 하기 위해 check를 true로 설정해주었다. 맨 윗줄, 맨 아래줄은 case를 따로 구분해 주었으며, 만약 방문하였는데 길이 막혀있다면 backtrack.. 2021. 8. 20. 2021.08.18 알고리즘 스터디 (그리디) - 그리디 알고리즘 개념 발표 - 각자 풀어온 문제 중 어려웠던 개념이나, 새로 안 개념들에 대해서 설명, 문제풀이 - 배운 내용 : 백준 수묶기 문제를 DP를 이용하여 풀면 더 쉽게 풀 수 있다. PriorityQueue를 이용하여 ()에 오름차순, 내림차순을 선언하면 데이터를 넣으면서 자동으로 정렬된다. 0과1을 바꾸는 부분이 있었는데 삼항연산자도 가능하지만 xor연산자를 이용하여 사용할 수도 있다. - 느낀점 : 수묶기 문제만 보더라도 배열, 리스트, 큐, dp를 이용하여 다 다르게 문제를 풀었다. 하나의 정답이 있는게 아니라 모든 걸 다 이해한 뒤에 어떤 방법을 써서 사용하는게 코드 구현에 더 효율성이 있는지에 대해 더 공부해야겠다 생각했다. 또한 그리디 알고리즘 발표를 맡았는데 발표를 준비하면서.. 2021. 8. 19. 이전 1 ··· 8 9 10 11 12 13 14 다음