[코드스쿼드 코코아 과정] 미션2 인디언 이름 짓기 (2)

Kyu·2020년 11월 5일
0
package mission02;

import java.util.Scanner;

public class Indian {
	
	public static void indianYear(int year) {
	
		String[] y = {"말 많은", "푸른", "어두운", "조용한", 
				"웅크린", "백색", "지혜로운", "용감한",
				"날카로운", "욕심많은"};
	
		int i = year%10;
			System.out.println(y[i]);
		}
	
	public static void indianMonth(int month) {
		String[] m = {"늑대", "태양", "양", "매", "황소", "불꽃", "나무", 
				"달빛", "말", "돼지", "하늘", "바람"};
		
	
		System.out.println(m[month - 1]);
		
		}
	
	public static void indianDay(int day) {
		String[] d = {"와(과) 함께 춤을", "의 기상", "은(는) 그림자 속에",
				"의 화신", "의 노예", "의 마법사", "의 환생", "의 죽음",
				"아래에서", "를(을) 보라", "이(가) 노래하다", "의 그림자",
				"의 일격", "에게 쫓기는 남자", "의 행진", "의 왕", "의 유령",
				"을 죽인자", "는(은) 맨날 잠잔다", "처럼", "의 고향", "의 전사",
				"은(는) 나의 친구", "의 노래", "의 정령", "의 파수꾼", "의 악마",
				"와(과) 같은 사나이", "를(을) 쓰러뜨린 자", "의 혼", "은(는) 말이 없다"};
		
		System.out.println(d[day - 1]);
		
		}
	
	

	public static void main(String[] args) {
		
			Scanner s = new Scanner(System.in);
			System.out.println("생년월일을 차례대로 입력해주세요.");
			
			int year = s.nextInt();
			int month = s.nextInt();
			int day = s.nextInt();
			
			indianYear(year); indianMonth(month); indianDay(day);

	}
}

처음에 위와 같이 마지막으로 코드를 짰는데 문자열이 한 줄에 모두 모여서 출력되는 게 아니라 따로 한 줄 씩 띄어져서 나왔다. 그래서 어떻게 하면 모두 모이게 추출력할 수 있을까 고민하면서 이것 저것 만지면서 삽질했다. 아직 배운게 많지 않아 어떻게 할지 전혀 감도 못잡았지만 목표 하나를 오른쪽 구석위에 pin 시켜놓고 코드를 작성하면서 계속 자신에게 상기시켰다.

해본 것 중에 하나를 예로 들면 마침 class를 배웠었기 때문에 세 개의 메소드를 class로 묶고, 그 클래스에 초기화된 길이가 3인 배열을 만들었다. 그 배열은 전역 변수이기 때문에 각 메소드들의 변수들을 그 배열에 담았다. 이후에 그 배열을 메인메소드로 가지고 와서 출력할 수 있을까 고민의 고민을 하던 중이었었다.

오늘 데일리 스크럼에서 팀원이 처음 코드에서 그냥 println 이 아니라 print로 바꾸면 해결이 될것이라고 해서 혼자 삽질한게 조금 스스로 웃기기도 했었다. 나중에 호눅스가 그 값들을 리턴해서 출력하면 좋을것 같다라고 말씀해주셔서 애초에 내가 찾고 있던 것이 return이었구나 하고 깨달았다.

그렇게 해서 이번엔 아래와 같이 만족스러운 결과를 만들었다.

package mission02;

import java.util.Scanner;

public class Indian {
	
	public static String indianYear(int year) {
	
		String[] y = {"말 많은", "푸른", "어두운", "조용한", 
				"웅크린", "백색", "지혜로운", "용감한",
				"날카로운", "욕심많은"};
	
		
		return y[year % 10];
		}
	
	public static String indianMonth(int month) {
		String[] m = {"늑대", "태양", "양", "매", "황소", "불꽃", "나무", 
				"달빛", "말", "돼지", "하늘", "바람"};
		
	
		return m[month - 1];
		}
	
	public static String indianDay(int day) {
		String[] d = {"와(과) 함께 춤을", "의 기상", "은(는) 그림자 속에",
				"의 화신", "의 노예", "의 마법사", "의 환생", "의 죽음",
				"아래에서", "를(을) 보라", "이(가) 노래하다", "의 그림자",
				"의 일격", "에게 쫓기는 남자", "의 행진", "의 왕", "의 유령",
				"을 죽인자", "는(은) 맨날 잠잔다", "처럼", "의 고향", "의 전사",
				"은(는) 나의 친구", "의 노래", "의 정령", "의 파수꾼", "의 악마",
				"와(과) 같은 사나이", "를(을) 쓰러뜨린 자", "의 혼", "은(는) 말이 없다"};
		
		return d[day - 1];
		}


	public static void main(String[] args) {
		
			Scanner s = new Scanner(System.in);
			System.out.println("생년월일을 차례대로 입력해주세요.");
			
			int year = s.nextInt();
			int month = s.nextInt();
			int day = s.nextInt();
			
			System.out.print(indianYear(year) + " " + indianMonth(month) + indianDay(day));

	}
}
profile
TIL 남기는 공간입니다

0개의 댓글