Algorithm/백준 15

백준 : 16938 캠프준비 java

https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net 문제 N개 중에서 1~N개를 뽑는 조합을 구한 뒤, 조합을 구했을때 마다 1. 난의도의 합이 L보다 크거나 같고 2. R보다 작거나 같으며 3. 가장어려운 문제와 가장쉬운 문제의 나이도 차이가 X보다 크거나 같은지 확인해준다. 위의 3가지 조건을 모두 만족하는 경우 totalCnt를 ++해서 답을 구한다. 조합은 백트래킹으로 구현했다. package algostudy; import java.util.Scanner; /* * 20220509 * 백준 : 16938 캠프준비 */ public class 캠프준비 ..

Algorithm/백준 2022.05.09

백준 : 18188 다오의데이트 java

https://www.acmicpc.net/problem/18188 18188번: 다오의 데이트 세번째 입출력 예제의 경우, 다오는 어떻게 움직이더라도 디지니를 만날 수 없다. 만약 다오가 처음에 윗쪽으로 움직인다면, 두번째로 움직일 때에는 아랫쪽으로 갈 수밖에 없다. 왜냐하면 그때 www.acmicpc.net package algostudy; import java.util.ArrayList; import java.util.Scanner; /* * 20220422 * 백준 : 18188 다오의데이트 */ public class 다오의데이트 { static int H, W, N; static char[][] map;// 주어지는 맵 static char[][] marid;// 마리드가 정한 방향 // 상하..

Algorithm/백준 2022.04.22

백준 : 1713 후보 추천하기

알고리즘 1. 사진틀이 비었다면 1-1. 사진이 게시되어있다면 추천++ 1-2. 게시 안되있으면 게시해 2. 사진틀이 꽉찼음 2-1. 사진이 게시되어있다면 추천++ 2-2. 게시 안되어있으면 젤오래된애 떼고 게시해 - student 배열: 사진틀 - recommend배열: 추천 수 카운트 - order배열: 추천된 순서 표시 백준 예시 1번을 돌린다면 이렇게 돌아간다 public class BOJ_1713 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt();//사진틀의 개수 int M = sc.nextInt();//전체 학생의 총 추천 횟수 int[] student = new ..

Algorithm/백준 2022.03.15

백준: 20115 에너지드링크 java

주어진 음료들중에 2개를 골라서 그 중 한개를 반으로 나누고 다른한쪽에 합치는걸 반복해서 총음료수 1개로 합쳐질때까지 반복하는 문제 음료의 양이 가장많은걸 맨 마지막에 합치면 최댓값이 나온다는것을 알면 풀 수 있다. import java.util.Scanner; /* * 백준 20115 * 실3 에너지 드링크 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; // 최댓값 int max = Integer.MIN_VALUE; // 음료수의 합 double sum = 0.0; // 에너지 드링크 양 ..

Algorithm/백준 2022.03.03

백준 : 10026 적록색약 java

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 이 문제랑 비슷하다 이차원배열 사방탐색 + 재귀를 이용해서 풀 수 있다. import java.io.IOException; import java.util.Arrays; import java.util.Scanner; import java.util.StringTokenizer; /* * 20220223 * 백준 골5 적록색약 */ public class Main { static int N; static..

Algorithm/백준 2022.03.03

백준 : 14620 꽃길 java

알고리즘 1. 사방탐색하면서 상하좌우 비용 더해주기 2. 찾은 꽃이 3개가 될때의 합 구하기 3. 합이 최소가 되도록 갱신해주기 import java.util.Scanner; /* * 실버2 꽃길 * * 사방탐색하면서 상하좌우 비용 더해주기 * 찾은 꽃이 3개가 될때 합 구하기 * 합이 최소가 되도록 갱신해주기 */ public class Main { static int N, min = 987654321; static int map[][]; static boolean v[][]; // 상하좌우 static int[] dr = { -1, 1, 0, 0 }; static int[] dc = { 0, 0, -1, 1 }; public static void main(String[] args) { Scanner ..

Algorithm/백준 2022.03.03

백준1316 실버5 그룹단어체커 C++ | 아스키코드

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net #include #include using namespace std; int main() { int n=0; int cnt=0; bool isgroup=true; string input; int alpha[26]={0,}; cin >> n; for(int j=0;j> input; for(int i=0;i

Algorithm/백준 2021.11.17

백준 2941 실버5 크로아티아 알파벳 문자열 C++ | 문자열 치환(replace함수),find함수 반환값->찾는문자열의 시작 인덱스

1. 크로아티아 문자 8개가 존재하지 않을때 까지 크로아티아 문자 길이만큼 숫자 "0"으로 치환, cnt++ 2. While문을 빠져 나온 후에 숫자가 아닌 알파벳을 count * 문자를 삭제하지않고 치환한 이유? 문자를 삭제하면 크로아티아 문자가 아니었던 개별문자들이 합쳐져 크로아티아 문자가 되는 경우가 생기기 때문(테스트케이스3번) #include #include using namespace std; int main() { string input; int index; int cnt=0; cin>>input; while(1){ if(input.find("c=")!=string::npos){ index=input.find("c=");//해당 문자의 시작 인덱스 반환 input.replace(index,2..

Algorithm/백준 2021.11.01

백준 5622 다이얼 브론즈2 문자열 C++ | 아스키코드

1. 정수형 Alpha배열에 알파벳 별 할당된 숫자를 채운다. 2. 입력받은 string형 문자열을 한 알파벳씩 아스키코드로 변환(형변환)해서 index를 얻는다. 3. (입력받은 문자열의 길이만큼 반복)Alpha배열에 얻은 index위치의 숫자값을 num배열에 넣는다. 4. num배열의 값+1(할당된 초)의 값을 모두 더해준다. #include #include using namespace std; int main() { int alpha[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9}; int num[26]={0,}; int index=0,sum=0; string input; cin >> input; for(int i=0;i

Algorithm/백준 2021.11.01