본문 바로가기

java

(102)
Basic Algorithm 12th t 형 2중 배열을 이용하여 원하는 값 출력하기 1. 이중배열 안에 값을 100까지의 숫자로 바꿔서 출력하기. ​ 이중배열이기 때문에 반복문도 2개를 돌려서 바꿔줘야 한다. 나중에 안 사실이지만 Random클래스를 이용하면 좀 더 코드를 간략화할 수 있다 import java.util.Random -> Random ran = new Random() ran을 이용해서 원하는 범위만 설정하면 된다. ​ 위 사진은 Random 클래스를 몰랐기 때문에, (int)(Math.random()*101)을 사용하였다 행을 row 지정하고 열을 column 으로 지정하였다 ​ 2중 반복문으로 row = 즉, 한 행을 돌때 그 안에 반복문이 또 있어서 열을 돈다 쉽게 말해, 한개의 행이 돌 때 그 안에 있는 열을 다 돌고..
Basic Algorithm 11th 배열에 들어있는 값들 랜덤으로 뽑고 등장 횟수 출력하기 뽑는 횟수는 int형 변수 repeat으로 100회로 지정 ​ 뽑을 값들은 String형 배열로 fruits 지정 ​ 그리고 과일의 갯수를 셀 배열을 fruit_count로 지정하고 fruit의 길이만큼 배열을 생성한다 ​ 반복문을 통해 미리 지정해놓은 repeat 반복할 예정이고 6개의 과일 중 하나씩 카운트할 계획이기 때문에 random_number 를 fruit.length 만큼 지정해준다 그럼 random_number 는 0부터 5까지 랜덤으로 컴퓨터 내부에서 뽑을 것이고, ​ fruit_count 의 0 ~ 5 번째 값에 순서대로 값을 추가시켜준다 ​ 그리고 마지막으로, 반복문을 통해 과일의 길이만큼 i를 반복시켜주고, printf로 해당 ..
Basic Algorithm 10th 사용자로부터 입력받은 문자열에 등장한 알파벳 출력하기 사용자로부터 문자열을 입력받고 그것을 String 타입으로 text라 칭한다 ​ 알파벳에는 대문자 소문자가 존재하므로 int형 배열 lowercount에 소문자 26자를 넣을 예정이고, int형 배열 uppercount에 대문자 26자를 넣을 예정이다 ​ len을 입력받은 문자열 text의 총길이라 칭하고 반복문을 i=0 부터 총길이 len까지 반복할 것이다 ​ 문자열 text에 각각의 인덱스에 해당하는 문자를 ch라 칭하고 가정문을 걸어 각각의 알파벳을 미리 만들어 두었던 배열에 넣을 것이다 ​ 만일 ch가 a 보다 크고 z 보다 작을 때에는 소문자 배열 lowercount [ch - 'a']에 넣을 것이다 ​ 여기서 ch - a 를 하는 이유는 만..
Basic Algorithm 9th 사용자로부터 두 개의 숫자를 입력받고 두 수의 최대공약수 구하기 원래는 Scanner 를 통해 두 수를 입력받아야 한다. 편의상 num 1 = 20 , num 2 = 50으로 지정하였다 ​ Math.max(x,y) 는 x, y 중에 큰 수를 의미하고 이것을 max로 지칭한다 Math.min(x, y)는 x, y 중에 작은 수를 의미하고 이것을 min으로 지칭한다 ​ gcd 를 int 형식으로 아무 숫자나 집어넣는다 gcd의 역할은 반복문 i 를 초기화시켜주는 역할이다. ​ 반복문을 통해 1부터 작은숫자까지 숫자를 진행시키는데 (작은 숫자까지만 해도 최대공약수는 나오기 때문) ​ 가정문을 통해 min 과 max 가 동시에 i로 나누어 떨어지는 값이 0 일 때만 gcd에 값을 넣어주고 ​ 위에 예시로는 공약..
Basic Algorithm 8th 사용자로부터 초를 입력받으면 *년*일*시*분으로 환산해서 출력하기 Scanner로 사용자로부터 입력받은 초를 int 타입 second로 지칭한다 ​ 미리 3개의 배열을 만들어 놓는데, 1. int converted 배열 = 나중에 초를 해당 년/일/시/분으로 나눈 값들을 담을 배열 2. int seconds 배열 = 초를 나눌 값들을 담을 배열 3. String units 배열 = {"년","일","시","분"}
Basic Algorithm 7th 369게임 만들기 - 입력받은 숫자까지의 3,6,9 일 때 박수 개수 출력하기 Scanner를 통해 사용자로부터 숫자를 입력받고 그 숫자를 int형 변수로 user라 지칭한다 ​ for문을 통해 user까지의 숫자를 반복하게 하고, 그 안에 가정문을 넣어 박수갯수를 세는 것으로 코드를 짠다 ​ if문을 통해 일의자리 숫자 먼저 count에 넣는다 (3/6/9) ​ else로 십의자리 숫자에서의 박수 개수를 세는데, n1 은 반복하는 숫자가 10 으로 나눴을 때의 숫자 = 즉, 10의 자리의 숫자 n2는 반복하는 숫자가 10으로 나눴을 때의 나머지 숫자 = 즉, 1의 자리의 숫자로 지칭 ​ boolean 타입으로 십의 자리의 숫자 (n1) 이 3/6/9 중에 하나 일때, a1 = true, boolean ..
Basic Algorithm 6th 1. (베스킨 라빈스 31 게임) 컴퓨터랑 게임하기 구현 컴퓨터와 플레이어의 턴을 잡기 위해 임의로 컴퓨터를 0 / 플레이어를 1로 지정한다 int turn => 랜덤으로 0과 1중에 하나만 뽑게 한다 (컴퓨터 내부에서) ​ 가정문을 사용하여, 만약 0이 뽑혔다면 컴퓨터 선공으로 지정하고 0이 아닌 1로 뽑혔다면 플레이어가 선공! ​ While문을 사용하여 숫자 num이 31보다 작을 시에는 계속 게임을 진행시키게 한다 여기서 While을 사용하는 이유는 증가폭을 지정하지 않아도 되기 때문에! (컴퓨터나 플레이어나 숫자를 몇을 외칠지 모르기 때문) ​ 그리고 While문 안에 가정문 If를 걸어서 turn == 0 일 때, 즉 컴퓨터 차례일 때 int com = 을 1,2,3 중에 하나 고르게 하기 위해..
Basic Algorithm 5th 1. 사용자로부터 입력받은 숫자까지의 소수만 출력하기 (소수란 약수가 1과 자기 자신만 있는 것) Scanner를 통해 사용자로부터 입력받은 값을 Int형식으로 num에 넣는다 음수에는 소수가 없기 때문에 반복문을 통해 num이 음수일 때는 다시 입력하라는 메시지를 띄워준다 ​ 체크넘버(chkNum) 는 2부터 입력받은 num까지 반복문을 돌리는데 2부터 시작하는 이유는 0,1 은 소수가 아니기 때문이다 ​ 그리고 다중 반복문으로 나누는숫자(divNum) 을 chkNum까지 반복시켜준다 ​ 다중 반복문안에 만약 체크 넘버를 divNum으로 나눴을 때 나머지가 0인 경우 count를 올려준다 ​ 쉽게 설명해서 체크넘버가 2일 경우 - divNum = 1부터 2까지 2 % 1 == 0 (카운트 추가) 2 %..