일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MLQ
- 가즈아
- 운영체제의 분류
- 양뱡향
- 자바
- 네트워크
- 책
- 성실한 개미
- 운영체제 개요
- 운영체제의 구동
- 프로그래머스
- CPU 스케줄링
- 기초 100제
- 운영체제 컴퓨터 향상
- 코드업 배열
- 운영체제
- Java
- 다할수있다
- 프로세스개념
- 운영체제의역할
- 문해력 수업
- 2차원 달팽이 배열
- 100제 문제
- 해커랭크
- MFQ
- 2차원행열
- 설탕뽑기
- 코드업
- 코딩을지탱하는기술
- 100제
- Today
- Total
개발로그
[코드업] 기초 100제 자바 - 복습3 본문
코드업 100제 문제를 자바로 풀면서 헷갈렸던 부분에 대해서 정리한다.
[기초-종합] 함께 문제 푸는 날(설명)
문제 설명 *
온라인 채점시스템에는 초등학생, 중고등학생, 대학생, 대학원생,
일반인, 군인, 프로그래머, 탑코더 등 아주 많은 사람들이 들어와 문제를 풀고 있는데,
실시간 채점 정보는 메뉴의 채점기록(Judge Status)을 통해 살펴볼 수 있다.
자! 여기서...잠깐..
같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?
예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다.
갑자기 힌트?
왠지 어려워 보이지 않는가?
수학에서 배운 최소공배수를 생각한 사람들도 있을 것이다. 하지만, 정보에서 배우고 경험하는
정보과학의 세상은 때때로 컴퓨터의 힘을 빌려 간단한 방법으로 해결할 수 있게 한다.
아래의 코드를 읽고 이해한 후 도전해 보자.
day는 날 수, a/b/c는 방문 주기이다.
...
day=1;
while(day%a!=0 || day%b!=0 || day%c!=0) day++; //이게 무슨 의미일까?
printf("%d", day);
...
물론, 아주 많은 다양한 방법이 있을 수 있다.
정보과학의 문제해결에 있어서 정답은?
하나가 아니라 주어진 시간/기억공간으로 정확한 결과를 얻을 수 있는 모든 방법이다.
따라서, 모든 문제들에는 정답이 하나뿐만이 아니다.
새로운, 더 빠른, 더 간단한 방법을 다양하게 생각해보고 도전해 볼 수 있다.
코드 *
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
long day = 1;
// 다시 모두 함께 문제를 풀게 되는 그날의 조건이다.
while (day%a != 0|| day%b != 0 || day%c != 0 ) {
day++;
}
System.out.println(day);
PS) 이문제는 글만 잘읽어보면 문제푸는 방법의 조건식이 나와있다.
문제를 잘 읽는 문해력공부가 필요할듯하다.
'코딩테스트' 카테고리의 다른 글
[코드업] 기초 100제 자바 - 복습5 (0) | 2022.08.21 |
---|---|
[코드업] 기초 100제 자바 - 복습4 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 - 복습2 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 - 복습1 (0) | 2022.08.21 |
[코드업] 기초 100제 자바 후기 (0) | 2022.08.21 |