참석 멤버
멤버 | 참석 여부 |
유현준 | O |
김태환 | O |
한민혁 | O |
서영훈 | O |
하민성 | O |
박병찬 | O |
3주차 문제
문제 1 [BOJ] 오븐 시계
https://www.acmicpc.net/problem/2525
문제 2 [BOJ] 주사위 세개
https://www.acmicpc.net/problem/2480
문제 3 [BOJ] 윤년
https://www.acmicpc.net/problem/2753
문제 4 [BOJ] 사분면 고르기
https://www.acmicpc.net/problem/14681
문제 5 [BOJ] 별찍기 - 2
https://www.acmicpc.net/problem/2439
문제 6 [BOJ] 팰린드롬인지 확인하기
https://www.acmicpc.net/problem/10988
문제 7 [BOJ] 공 넣기
https://www.acmicpc.net/problem/10810
문제 8 [BOJ] 최댓값
https://www.acmicpc.net/problem/2562
문제 9 [BOJ] 평균
https://www.acmicpc.net/problem/1546
문제 10 [BOJ] 바구니 뒤집기
https://www.acmicpc.net/problem/10811
문제 11 [BOJ] 행렬 덧셈
https://www.acmicpc.net/problem/2738
문제 12 [PRO] 리스트 자르기
https://school.programmers.co.kr/learn/courses/30/lessons/181897
문제 13 [PRO] 공 던지기
https://school.programmers.co.kr/learn/courses/30/lessons/120843
문제 14 [BOJ] 최댓값 - 위 최댓값과 다른 문제입니다.
https://www.acmicpc.net/problem/2566
컨벤션
•
커밋 메세지 양식대로 Github에 커밋하기
◦
풀었을 경우 -> solve : [플랫폼이름] {문제이름}_{날짜}
◦
못푼 경우 -> unsolve : [플랫폼이름] {문제이름}_{날짜}
▪
ex) solve : [BOJ] 다리놓기_240703
▪
ex) unsolve : [PRO] 피로도_240705
◦
플랫폼 표기
▪
BOJ -> 백준
▪
PRO -> 프로그래머스
▪
CDT -> 코드트리
•
사례
코드 이슈
•
코드 이슈 다는 방법 참고하여 주차별 팀원들 작성한 코드에 코드리뷰 하기
◦
ex) 이 부분 설몀 부탁드려요… 이 부분에 대한 이해가 필요합니다…
•
모든 문제에 다 올린다기 보다 자기가 이해되지 않는 부분에 한해서 이슈를 작성
백준 문제풀이 시 주의사항
•
제출 시 클래스명은 Main, import 부분은 넣어주기
◦
클래스명은 반드시 Main, 사용한 import는 반드시 함께 넣어주기
▪
보통 import java.util.*, import java.io* 넣어주고 코드 작성
◦
Main 이외의 클래스를 추가로 쓰고 싶으면 public이 아닌 클래스 혹은 inner 클래스로 사용
◦
main문 자체가 static 함수이므로 거기서 사용하는 전역변수 및 모든 함수 또한 static이어야 한다.
// package는 본인 프로젝트 경로이므로 제출시 반드시 제거
// package com.BaekjoonCode;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
private int a = 0;
private int b, c;
//클래스 내부 함수 선언
private void test(){
//input your code
}
//실제로 실행이 되는 main 함수
public static void main(String[] args) throws Exception {
//input your code
}
}
Java
복사
•
Scanner 보다 BufferedReader 사용
◦
일반적으로 Scanner sc = new Scanner(System.in): 을 통해 입력을 받지만, Scanner는 내부적으로 nextInt(), nextFloat() 등을 호출할 때
입력한 값을 찾기 위해 정규식을 사용하므로 성능 면에서 느리게 동작한다.
◦
사용하면 로직은 맞으나 시간 초과나서 틀리는 경우가 발생한다!!
◦
마찬가지로 String 역시 split() 보다는 StringTokenizer로 구분하는 게 더 빠르다.
◦
BufferedReader 사용 시 깔끔하게 맨 끝에 close를 해주는 게 좋다.
•
출력도 System.out.println()은 느림
◦
StringBuilder - 출력할 것들을 전부 모아준 다음 그냥 System.out.println() 으로 출력해준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder(); // StringBuilder 객체 사용
int n = Integer.parseInt(br.readLine());
for(int i=0; i < n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int s = Integer.parsInt(st.nextToken());
for(int j=0; j < s; j++){
int data = Integer.parseInt(st.nextToken());
sb.append(data).append('\n');
}
}
System.out.println(sb);
}
}
Java
복사
4주차 문제 (범위 : 조건, 반복문, 1차원 배열, 2차원 배열) - 10문제
문제 1 [BOJ] 나머지
https://www.acmicpc.net/problem/3052
문제 2 [BOJ] 공 바꾸기
https://www.acmicpc.net/problem/10813
문제 3 [PRO] 369게임
https://school.programmers.co.kr/learn/courses/30/lessons/120891
문제 4 [BOJ] 수 정렬하기 3
https://www.acmicpc.net/problem/10989
문제 5 [BOJ] 일곱 난쟁이
https://www.acmicpc.net/problem/2309
문제 6 [BOJ] 분해합
https://www.acmicpc.net/problem/2231
문제 7 [PRO] 진료순서 정하기
https://school.programmers.co.kr/learn/courses/30/lessons/120835
문제 8 [PRO] 안전지대
https://school.programmers.co.kr/learn/courses/30/lessons/120866
문제 9 [PRO] 모의고사
https://school.programmers.co.kr/learn/courses/30/lessons/42840
문제 10 [BOJ] 달팽이 - 많이 어려움
https://www.acmicpc.net/problem/1913