2025/08/03 13:00~16:00
목표:
1.백준 단계별로 풀어보기 문제 2개
-1181(단어 정렬), 10814(나이순 정렬)
2.유니티 개인 프로젝트 진행
1.백준 단계별로 풀어보기 문제 2개
-1181(단어 정렬), 10814(나이순 정렬)
-둘 다 정렬 문제, 병합 정렬 알고리즘을 사용하여 풀이
import java.util.*;
import java.io.*;
public class Main { //1181 단어정렬
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
String[] x = new String[n];
int realn = 0;
for(int i=0;i<n;i++) {
String str = br.readLine();
boolean isClean = true;
for(int j=0;j<realn;j++){
if(x[j].equals(str)){
isClean = false;
}
}
if(isClean){
x[realn] = str;
realn++;
}
}
String[] realx = new String[realn];
for(int i=0;i<realn;i++){
realx[i] = x[i];
}
merge_sort(realx);
for(int i=0;i<realn;i++){
sb.append(realx[i] + "\n");
}
System.out.print(sb);
}
private static String[] sortedx;
public static void merge_sort(String[] x) {
sortedx = new String[x.length];
merge_sort(x, 0, x.length - 1);
sortedx = null;
}
private static void merge_sort(String[] x, int left, int right) {
if(left == right) return;
int mid = (left + right) / 2;
merge_sort(x, left, mid);
merge_sort(x, mid + 1, right);
merge(x, left, mid, right);
}
private static boolean Dictionary(String a, String b) {
boolean same = false;
for(int i=0;i<a.length();i++) {
if(a.charAt(i) == b.charAt(i)) {
continue;
}
else if(a.charAt(i) < b.charAt(i)) {
return true;
}
else {
return false;
}
}
return same;
}
private static void merge(String[] x, int left, int mid, int right) {
int l = left; // 왼쪽 부분리스트 시작점
int r = mid + 1; // 오른쪽 부분리스트의 시작점
int idx = left; // 채워넣을 배열의 인덱스
while(l <= mid && r <= right) {
if(x[l].length() < x[r].length() ||
(x[l].length() == x[r].length() && Dictionary(x[l],x[r]))) {
sortedx[idx] = x[l];
idx++;
l++;
}
else {
sortedx[idx] = x[r];
idx++;
r++;
}
}
if(l > mid) {
while(r <= right) {
sortedx[idx] = x[r];
idx++;
r++;
}
}
else {
while(l <= mid) {
sortedx[idx] = x[l];
idx++;
l++;
}
}
for(int i = left; i <= right; i++) {
x[i] = sortedx[i];
}
}
}
import java.util.*;
import java.io.*;
public class Main { //10814 나이순 정렬
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
int[] x = new int[n];
String[] y = new String[n];
for(int i=0;i<n;i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
x[i] = Integer.parseInt(st.nextToken());
y[i] = st.nextToken();
}
merge_sort(x,y);
for(int i=0;i<n;i++){
sb.append(x[i] + " " + y[i] + "\n");
}
System.out.print(sb);
}
private static int[] sortedx;
private static String[] sortedy;
public static void merge_sort(int[] x,String[] y) {
sortedx = new int[x.length];
sortedy = new String[y.length];
merge_sort(x,y, 0, x.length - 1);
sortedx = null;
}
private static void merge_sort(int[] x, String[] y, int left, int right) {
if(left == right) return;
int mid = (left + right) / 2;
merge_sort(x,y, left, mid);
merge_sort(x,y, mid + 1, right);
merge(x,y, left, mid, right);
}
private static void merge(int[] x,String[] y, int left, int mid, int right) {
int l = left;
int r = mid + 1;
int idx = left;
while(l <= mid && r <= right) {
if(x[l] <= x[r]) {
sortedx[idx] = x[l];
sortedy[idx] = y[l];
idx++;
l++;
}
else {
sortedx[idx] = x[r];
sortedy[idx] = y[r];
idx++;
r++;
}
}
if(l > mid) {
while(r <= right) {
sortedx[idx] = x[r];
sortedy[idx] = y[r];
idx++;
r++;
}
}
else {
while(l <= mid) {
sortedx[idx] = x[l];
sortedy[idx] = y[l];
idx++;
l++;
}
}
for(int i = left; i <= right; i++) {
x[i] = sortedx[i];
y[i] = sortedy[i];
}
}
}
2. 유니티 개인 프로젝트 진행
-게임 플레이 스크립트들
-플레이어가 쓰는 자원들을 관리하는 InventoryMgr 작성
-캐릭터 관련 ActorInfo, Character, CharacterMgr스크립트 추가 작성(스킬 관련)
-UI 스크립트들
-캐릭터 관련 정보 CharacterInfoDlg 스크립트 추가 작성
-인벤토리 정보 보여주는 InventoryItemDlg 스크립트 작성
'모각코' 카테고리의 다른 글
모각코 6회차 회고 (1) | 2025.08.10 |
---|---|
모각코 6회차 목표 (0) | 2025.08.10 |
모각코 5회차 목표 (0) | 2025.08.03 |
모각코 4회차 회고 (3) | 2025.07.27 |
모각코 4회차 목표 (1) | 2025.07.27 |