👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇
반복문을 멈추는 키워드
Break : 현재 반복문을 종료한다
Continue : 더이상 코드를 실행하지 않고 for문의 증감이나 증감식으로 넘어간다. 그다음 for 반복을 진행한다
예를 들어 중첩for문 안에서 break를 실행 시 break위치에 따라 반복문이 전체 종료가 될지 내부에 있는 for문만 종료되는지 달라진다.
i for문 안에있는 j for문 안에 break를 사용하게 되면 j for문은 종료되지만 i for문은 종료되지 않는다.
Boolean 자료형
Boolean 타입은 참과 거짓만 저장된다
true : 1
false : 0
int a = 1;
boolean e = 1;
이 두가지는 다른 자료형 이기 때문에 의미가 전혀 다르다.
오늘의 문제
문제 1
int [] elevator ={4,1,1,8,1,1,1,8,4,3,2,1,2,3};
연속된 1의 개수를 출력하세요. 단 1이 1개일 때는 카운팅 하지 않는다.
위 예제의 결과는 5이다.
public static void main(String[] args) {
int[] elevator = {4, 1, 1, 1, 8, 1, 1, 8, 4, 1, 3, 2, 1, 1, 1, 2, 3};
int tot = 1;
for (int i = 0; i < elevator.length; i++) {
int cnt = 1;
for (int j = i; j < elevator.length; j++) {
if (elevator[j] == 1) {
cnt++;
} else if (elevator[j] != 1) {
i += cnt;
break;
}
}
if (cnt > 1) {
i += cnt-1;
tot += cnt;
}
System.out.println("cnt 값 : " + cnt);
}
System.out.println("1이 연속적인 길이 : " + tot);
}
문제 2
int [] p = {40,32,21,7};
int[] restList = {2,1,0,3}
//p 배열의 인덱스는 사람의 번호이다. 값은 소유한 사탕의 개수이다.
// 예를 들어 1번 사람은 32개의 사탕을 소유하고 있다
사탕은 쉬는 시간에 먹을 수 있다.
쉬는 시간은 1시간이며 최대 2개까지 먹을 수 있다.
쉬는 시간은 개별로 주어지며 차례대로 주어진다.
restList배열의 0번 인덱스 사람에게 먼저 1시간의 쉬는 시간이 주어지고
그다음에는 1번 인덱스 사람에게 쉬는 시간이 주어진다.
각 사람들은 쉬는 시간에 사탕 2개를 먹는다.
다 먹고 나면 줄의 맨 마지막에 줄을 서서 쉬는 시간을 기다린다.
0번 사람이 사탕을 모두 먹기 위해 필요한 시간(대기시간+먹는 시간)을 구하시오.
package TASK;
public class task03 {
public static void main(String[] args) {
int[] p = {40,32,21,7};
int[] restList = {2,1,0,3};
int[] pTime = new int[4];
int[] eTime = new int[4];
int idxTmp = 0;
while (true) {
int tmp = restList[0];
p[tmp] -= 2;
eTime[tmp] += 1;
for (int j = 0; j < restList.length; j++) {
if (j != tmp) pTime[j] += 1;
else if (j == tmp) continue;
}
for (int i = 0; i <= restList.length; i++) {
if ( i == 0 ) {
idxTmp = restList[0];
}
else if ( i <= 3) {
restList[i-1] = restList[i];
}
else if ( i == 4) {
restList[3] = idxTmp;
}
}
if (p[0] <= 0 ) break;
}
for (int i = 0; i < p.length; i++) {
int tmp = restList[i];
System.out.println( restList[tmp] + " 번째 사람의 잔여 사탕 : " + p[tmp] + " / 먹은 시간 : " + eTime[tmp] + " / 대기시간 : " + pTime[tmp]);
}
for (int i = 0; i < restList.length; i++) {
System.out.println(restList[i]);
}
}
}
사실 이문제는 풀이를 선생님에게 못 들었지만
난 잘못 푼 것 같다..
다시 풀어야 할 것 같다 흑흑
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Jᴀᴠᴀ' 카테고리의 다른 글
2023/10/12⭐️ JAVA Mini Project (0) | 2023.10.18 |
---|---|
2023/10/11🤦♀️ Java 조별 미션 (1) | 2023.10.18 |
2023/10/06🌱 지금까지 배운 자바테스트 (1) | 2023.10.10 |
2023/10/05🐰 중첩FOR문 (0) | 2023.10.10 |
2023/10/04✨ break & continue (1) | 2023.10.04 |