본문 바로가기
반응형

Swexpert8

SW Expert Academy [Professional] 키 순서 / 백준 2458 키 순서 🅰 SW Expert Academy [Professional] 키 순서 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net ✏️ 문제 풀이 백준의 키 순서 문제와 동일한 문제이다. 학생들의 키를 비교한 결과가 주어질 때, 자신의 키가 몇 번째인지 알 수 있는 학생들이 모두 몇 명인지 계산하여 출력하는 프로그램을 작성해야 한다. 그래프 형식으로 주어지기 때문에 플로이드-와샬을.. 2021. 9. 29.
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.
[swexpert] Intermediate / Queue / 1225 / 1226 / 1227 🅰 1225. 암호생성기 ​ ✏️ 문제 풀이 8개의 숫자를 입력 받는다. 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다. 이와 같은 작업을 한 사이클이라 한다. 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다. ​ 큐를 이용하여 8개의 숫자를 입력받은 뒤 while문을 통해 반복을 해주었고 그 안에 for문을 넣어 감소한 숫자를 반복해주었다. q.poll()-i 가 0보다 작거나 같으면 암호문이 종료되는 조건이므로 큐에 삽입 후 while문을 빠져나오도록 설정해주었다. ​ ✏️ 소스코드 pa.. 2021. 8. 12.
[swexpert] Intermediate / Stack2 / 1222, 1223, 1224 🅰 1222. 계산기 1 ​ ✏️ 문제 풀이 중위표기식으로 작성된 문자열을 후위표기식으로 변경해 연산 값을 도출하는 문제이다. 연산자는 + 하나뿐이라 연산자의 우선순위를 고려할 필요가 없었다. 데이터를 문자열로 읽어와 후위표기식으로 변경해주었다. 후위식으로 변경할 때는 스택에 연산자만 들어가고, 후위표기법을 연산할 때에는 스택에 정수만 들어가기 때문에 Stack을 Char형태, Int 형태 2개로 선언한 후 문제를 풀었다. char형식의 arr배열에 피연산자를 먼저 넣고, while문을 통해 Stack에 있는 연산자를 arr배열에 넣어주었다. 후위표기식 연산을 하기 위해 char형태로 저장되어 있는 정수들을 Character.getNumericValut(char a)를 통해 int형으로 변경해 주었으며,.. 2021. 8. 12.
[swexpert] Intermediate / Stack1 / 1217, 1218, 1219 🅰 1217. 거듭제곱 ​ ✏️ 문제 풀이 - 재귀호출을 이용하여 주어지는 입력값을 통해 거듭제곱 값을 구하는 문제이다. - Function(N,M) 함수를 만들어 M만큼 N을 곱해야 하므로 - Function(N, M-1)을 통해 재귀호출을 구현하였다. ​ ✏️ 소스코드 package stack1; import java.util.*; public class Sw1217 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for (int test_case = 1; test_case 0 && visited[S2[v]] == false) { stack.push(S2[v]); visited[S2[v]] = true; }.. 2021. 8. 12.
[swexpert] Intermediate / String / 1213, 1215 ,1216 🅰 1213. String ​ ✏️ 문제 풀이 - 주어진 문자열에서 특정 문자열이 몇번 나오는지 검색하는 문제이다. - 특정 문자열과, 주어진 문자열의 내용을 String으로 받아와 toCharArray() 를 이용하여 char[]배열 형태로 바꿔주었다. 보이어 무어 기법을 이용하였다. - 각 문자마자 이동시킬 자리수를 저장할 Skip배열을 생성하였고, 특정 문자열중에 같은 문자가 없을 시 문자열 크기만큼 이동 시켜 줄 값을 Skip배열 마지막에 넣어주었다. ​ ✏️ 소스코드 package string; import java.util.Scanner; public class Sw_1213 { public static void main(String[] args) { int T = 0; Scanner sc =.. 2021. 8. 12.
[SW Expert Academy] Intermediate / Array1 / 1206. [S/W 문제해결 기본] Flatten Array1) 1204. Flatten_ package array1; import java.util.Scanner; import java.io.FileInputStream; class Flatten { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); // txt 파일 읽어오는 소스코드 // System.setIn(new FileInputStream("res/1206_input.txt")); // 행, 열, 테스트케이스길이, 정답 int dump; int Box[] = new int[100]; // 10개의 테스트 케이스 반복 for (int test_case = 1; test_case.. 2021. 8. 12.
[SW Expert Academy] Intermediate / Array1 / 1204. [S/W 문제해결 기본] 최빈수 구하기 Array1) 1204. 최빈수구하기_ package array1; import java.util.Scanner; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { // txt 파일 읽어오는 소스코드 // System.setIn(new FileInputStream("res/input.txt")); Scanner sc = new Scanner(System.in); int T; T = sc.nextInt(); /* * 여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다. */ int N; int[] stud = new int[1000]; // 학생 수 1000명 .. 2021. 8. 12.