Backend
Frontend
Database & Infra
Project
codesche’s blog
/
Education
/
스터디 그룹
/
스터디 그룹
Backend
Frontend
Database & Infra
Project
codesche’s blog
/
Education
/
스터디 그룹
/
스터디 그룹
Share
Backend
Frontend
Database & Infra
Project
스터디 그룹
스터디 그룹
Search
회의실 배정
•
손으로 풀어보기
6주차
백준 - 세로읽기
•
첫 번째 풀이방법
•
정답풀이
프로그래머스 - 같은 숫자는 싫어
•
이 문제는 총 3가지 풀이방법으로 정리
◦
리스트 활용
package
week5
.
programmers
;
import
java
.
util
.
*
;
// 같은 숫자는 싫어
public
class
Programmers12906
{
public
int
[
]
solution
(
int
[
]
arr
)
{
int
[
]
answer
=
{
}
;
ArrayList
<
Integer
>
list
=
new
ArrayList
<
>
(
)
;
// 이전 인덱스와 현재 인덱스를 비교하여 리스트에 담는다
for
(
int
i
=
1
;
i
<
arr
.
length
;
i
++
)
{
if
(
arr
[
i
]
==
arr
[
i
-
1
]
)
{
continue
;
}
else
{
list
.
add
(
arr
[
i
-
1
]
)
;
}
}
// 비교 과정에서 마지막 인덱스가 제외되므로 마지막 인덱스를 리스트에 추가시켜준다
list
.
add
(
arr
[
arr
.
length
-
1
]
)
;
answer
=
new
int
[
list
.
size
(
)
]
;
for
(
int
i
=
0
;
i
<
answer
.
length
;
i
++
)
{
answer
[
i
]
=
list
.
get
(
i
)
;
}
return
answer
;
}
public
static
void
main
(
String
[
]
args
)
{
Programmers12906
T
=
new
Programmers12906
(
)
;
T
.
solution
(
new
int
[
]
{
1
,
1
,
3
,
3
,
0
,
1
,
1
}
)
;
}
}
Java
복사
◦
임의의 변수 설정 (배열의 요소가 0부터 9까지 이루어져 있다는 조건을 활용)
package
week5
.
programmers
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Arrays
;
// 같은 숫자는 싫어
public
class
Programmers12906_2
{
public
int
[
]
solution
(
int
[
]
arr
)
{
ArrayList
<
Integer
>
list
=
new
ArrayList
<
>
(
)
;
int
tempNum
=
10
;
// arr 원소 크기 0 ~ 9 => 무의미한 값으로 10 선언하여 배열 요소값과 비교해준다
for
(
int
num
:
arr
)
{
if
(
tempNum
!=
num
)
{
// 같지 않으면 리스트에 추가
list
.
add
(
num
)
;
}
tempNum
=
num
;
// 다음 진행 절차를 위해 tempNum을 num으로
}
int
[
]
answer
=
new
int
[
list
.
size
(
)
]
;
for
(
int
i
=
0
;
i
<
answer
.
length
;
i
++
)
{
answer
[
i
]
=
list
.
get
(
i
)
;
}
return
answer
;
}
public
static
void
main
(
String
[
]
args
)
{
Programmers12906_2
T
=
new
Programmers12906_2
(
)
;
System
.
out
.
println
(
Arrays
.
toString
(
T
.
solution
(
new
int
[
]
{
1
,
1
,
3
,
3
,
0
,
1
,
1
}
)
)
)
;
}
}
Java
복사
◦
스택 활용
package
week5
.
programmers
;
import
java
.
util
.
Arrays
;
import
java
.
util
.
Stack
;
// 같은 숫자는 싫어
public
class
Programmers12906_3
{
public
int
[
]
solution
(
int
[
]
arr
)
{
Stack
<
Integer
>
stack
=
new
Stack
<
>
(
)
;
// 스택안에 비어있으면 1개를 넣기
// 제일 위에 값을 꺼내지 않고 같은 값이면 값을 넣지 않음, 값이 다를 경우 스택에 쌓기
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
if
(
stack
.
isEmpty
(
)
||
stack
.
peek
(
)
!=
arr
[
i
]
)
{
stack
.
push
(
arr
[
i
]
)
;
}
}
int
[
]
answer
=
new
int
[
stack
.
size
(
)
]
;
for
(
int
i
=
stack
.
size
(
)
-
1
;
i
>=
0
;
i
--
)
{
answer
[
i
]
=
stack
.
pop
(
)
;
// 스택의 뒤에서 부터 꺼내기 때문에 반대로 반복
}
return
answer
;
}
public
static
void
main
(
String
[
]
args
)
{
Programmers12906_3
T
=
new
Programmers12906_3
(
)
;
System
.
out
.
println
(
Arrays
.
toString
(
T
.
solution
(
new
int
[
]
{
1
,
1
,
3
,
3
,
0
,
1
,
1
}
)
)
)
;
}
}
Java
복사
백준 - 커트라인
•
풀이
5주차
프로그래머스 - 369 게임
•
나의 풀이 - 에러 발생
•
정답 풀이
4주차
참석 멤버
멤버
참석 여부
유현준
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] 윤년
3주차
유형 1 [난이도 상]
문제 1 [BOJ] 동전 0 - 그리디(실4) ⇒ [BOJ] 거스름돈 - 그리디(브2) 유사
https://www.acmicpc.net/problem/11047
문제 2 [BOJ] 다리놓기 - DP(실5)
https://www.acmicpc.net/problem/1010
•
math 메소드의 comb
◦
참고
math.perm()
: n개의 아이템에서 k개를 선택하는 방법(중복 X, 순서 O)
math.comb()
: n개의 아이템에서 k개를 선택하는 방법(중복 X, 순서 X)
2주차
•
알고리즘 스터디
◦
python3 / java
◦
개인마다 역량 차이가 날 수 있으니 팀 선정시 이 부분을 고려해야 함
◦
사람이 많은 경우 알고리즘 스터디별로 그룹장 필요?!
◦
Github Repository 구성
▪
개인별로 작성한 소스 commit
•
수요조사
◦
멤버 구성
◦
알고리즘 선호 언어
▪
Java
▪
Python
•
경험 유무
◦
다희님
◦
제현님
◦
병찬님 ⇒ 자바로 공부중
◦
희재님
◦
서연님
◦
지훈님 ⇒ 자바로 공부중
•
구성원 정리
계획
일일 알고리즘 진행상황