ballqs 님의 블로그
TIL - 2024년 08월 07일 - 팀 프로젝트 7일차(PPT 작성시 문제 발생) 본문
오늘의 일정
9:00 ~ 10:00 - 알고리즘 코드카타
10:00 ~ 12:00 - 팀 프로젝트 PPT 작성
12:00 ~ 13:00 - 점심시간
13:00 ~ 18:00 - 팀 프로젝트 PPT 작성
18:00 ~ 19:00 - 저녁시간
19:00 ~ 22:00 - 팀 프로젝트 PPT 작성
22:00 ~ - TIL 작성
알고리즘 코드카타
프로그래머스 소수 찾기라는 문제를 풀었다.
해당 문제는 숫자만 들어있는 문자열이 주어지고 해당 문자열을 하나씩 분리한 다음에 온갖 조합을 통해 숫자를 만들어내고 그 숫자가 소수인지를 찾는 문제였다.
제한사항
- numbers는 길이 1 이상 7 이하인 문자열입니다.
- numbers는 0~9까지 숫자만으로 이루어져 있습니다.
- "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.
입출력 예
numbers | return |
"17" | 3 |
"011" | 2 |
입출력 예 설명
예제 #1
[1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다.
풀이과정
DFS 알고리즘과 에라토스테네스의체 알고리즘만 알고 있다면 매우 쉽게 풀수 있는 문제였다.
코드
import java.util.*;
class Solution {
int answer = 0;
Set<Integer> set = new HashSet<>();
public int solution(String numbers) {
String[] str = new String[numbers.length()];
boolean[] visit = new boolean[numbers.length()];
int idx = 0;
for (char c : numbers.toCharArray()) {
str[idx++] = c + "";
}
dfs(str , visit , 0);
return answer;
}
// dfs
public void dfs(String[] str , boolean[] visit , int number) {
// 소수 검증은 숫자 2부터
if (number > 1) {
// set에 있는지? 소수가 맞는지?
if (!set.contains(number) && discriminator(number)) {
set.add(number);
answer++;
}
}
for (int i = 0; i < str.length; i++) {
if (visit[i]) {
continue;
}
visit[i] = true;
// 주어진 number에 10를 곱하고 뒤에 붙여나가는 방법
dfs(str , visit , (number * 10) + Integer.parseInt(str[i]));
visit[i] = false;
}
}
// 소수 판별기
public boolean discriminator(int number) {
for (int i = 2; i <= Math.sqrt(number); i++) {
if(number % i == 0) {
return false;
}
}
return true;
}
}
팀 프로젝트 PPT 작성
PPT 작성 및 발표 준비하는데 오늘은 많이 힘든날이지 않았나 싶다....
팀원들과 PPT 구성을 어떻게 잡고 작성하는지 의견을 말하는게 나 혼자였기 때문이다.
다른 조들은 어떻게 구성했는지 훑어보고 큰틀 부분부터 말하면서 잡아갔다.
팀 소개
팀원들을 소개하며 각자 맡은 파트가 무엇인지 설명하는 부분이다.
기획
- 어떻게 프로젝트에 접근했는가?
- 주어진 템플릿을 분석하여 어떻게 진행할지 고민 후 프로세스가 짜여져 있는 걸 분석 후 기능부분 논의
- 역할 분배
- 기능의 영향력을 기반으로 어떻게 작업을 분배할지 정함
구성도
초기
초기 부분 데이터 타입을 어떻게 설정했고 기능부분을 어떻게 구현할지 주석으로 정리
과목 기능
과목 모델은 어떻게 구성되었는가?
enum 기능이 쓰였고 어디에 사용 했는지?
과목 데이터 저장소는 어떻게 구현했는지?
수강생 기능
수강생 모델은 어떻게 구현되었는가?
수강생에도 enum 기능을 사용했고 아래와 같이 작성했다.
수강생 저장소는 어떻게 구현했는지?
점수 기능
점수 모델은 어떻게 구현했는지?
점수 저장소는 어떻게 구현했는지?
핵심적으로 사용 한 것
아쉬웠던 점 , 진행하면서 어려웠던 점
마무리
PPT구성을 작성하는데 시간을 다 사용하긴 했지만 다음부터는 위 기준에서 조금 변형해서 쓰지 않을까 싶다.
'내일배움캠프 > Java' 카테고리의 다른 글
TIL - 2024년 08월 08일 - 팀 프로젝트 종료 및 KPT 작성 (0) | 2024.08.08 |
---|---|
TIL - 2024년 08월 02일 - 팀 프로젝트 2일차 (0) | 2024.08.02 |
TIL - 2024년 08월 01일 - 팀 프로젝트 시작 (0) | 2024.08.01 |
TIL - 2024년 07월 19일 공부한 내용 정리하기(int long BigInteger) (0) | 2024.07.19 |
TIL - 2024년 07월 18일 공부한 내용 정리하기(Set) (0) | 2024.07.18 |