반응형

이제 드디어 패스트캠퍼스의 데이터 분석 패키지의 마지막을 달리고 있습니다!

이번주에는 주어진 영화 관련 데이터와 고속도로 통행 관련 데이터를 분석해보는 시간입니다.

 

1. 박스 오피스 데이터 요약

 

주어진 데이터는 영화진흥위원회(http://www.kobis.or.kr)에서 배포하는 관객수 기준 역대 박스 오피스 상위 200개에 대한 정보입니다.

 

주어진 데이터의 구성은 아래와 같습니다.

Columns : 영화명, 개봉일, 매출액, 관객수, 스크린수, 상영횟수, 대표국적

Rows : 200개의 영화

 

이 데이터를 예제들을 통해 아래와 같이 간단히 요약해보았습니다.

##0 데이터 불러오기

  library(openxlsx)  
  movies = read.xlsx('data/movies.xlsx')    

 

##1 : head( ), tail( ), names( ) 함수에 데이터를 넣어서 실행하기    
  head(movies)
  tail(movies)
  names(movies)
   
##2 : $를 활용해서 변수를 선택하여 매출액, 관객수, 상영횟수의 최댓값 계산하기 
  max(movies$매출액)
  max(movies$관객수)
  max(movies$상영횟수)
 
## (예제) 스크린수의 평균값 계산하기
  mean(movies$스크린수)
  
##3 which.max( )로 매출액 최대, 관객수 최대 영화 확인하기
  
  ## 최소 스크린수 영화 확인하기
  which.min(movies$스크린수)
  movies[60, ]

  movies[which.max(movies$관객수),]
  movies[which.max(movies$매출액),]
  
##4 관객수의 히스토그램과 상자그림 그리기
  hist(movies$관객수)  
  boxplot(movies$관객수)
  
##5 관객수를 상영횟수로 나눠 상영횟수당 관객수가 가장 많은 영화 찾기
  movies[which.max(movies$관객수 / movies$상영횟수),]
  

2. 고속도로 통행 데이터 요약

 

주어진 데이터는 2018년 12월의 고속도로 통행 데이터입니다.

고속도로 공공데이터 포털(http://data.ex.co.kr)에서 주어진 데이터를 활용합니다.

 

주어진 데이터의 구성은 아래와 같습니다.

Columns : 집계 일자, 집계 시간, 영업소 명, 입구출구 구분, 통행량

Rows : 585064개의 출입 데이터

 

이 데이터를 예제들을 통해 아래와 같이 간단히 요약해보았습니다.

 

##0 데이터 불러오기

  # 데이터 불러오기 
  highway = read.csv('data/highway_1812.csv', fileEncoding='UTF-8')
  highway  
  
  # 집계일자를 날짜 형식으로 변환
  highway$집계일자 = strptime(highway$집계일자, format='%Y%m%d')

 
  # 요일 변수 추가하기 
  highway$요일 = weekdays(highway$집계일자)
  highway
   
##1 변수이름, 관측치 샘플 확인하기
  
names(highway)
  
##2 subset( )으로 토요일 데이터만 모아서 
##  highway_sat 로 저장하기
  
highway_sat = subset(highway, highway$요일 == '토요일')
highway_sat
  
##3 영업소명 '통영' 혹은 '북통영' 이면서 요일 기준 '토요일', '일요일'인 데이터만 모아서 ty_weekend 로 저장하기

ty_weekend = subset(highway, highway$요일 %in% c('토요일', '일요일') & highway$영업소명 %in% c('통영', '북통영'))
## (예제) %in%의 활용
  subset(highway, 영업소명 %in% c('서울(특)', '동서울'))
  
  
  ## (예제) &를 활용한 조건 결합
  (1:5 >= 3) & (1:5 <= 3)
   
##4 aggregate( )로 요일별 통행량 합계 계산하기
aggregate(highway$통행량, by = list(highway$요일), FUN = sum)
  
  
  
##5 3에서 만든 ty_weekend로 집계시간별 통행량 합계를 계산하기
aggregate(ty_weekend$통행량, by = (list(ty_weekend$집계시간)), FUN = sum)
   

9주차 후기를 마치겠습니다. 이상 끝-!

반응형
반응형

* 사건 : 관측치나 데이터가 특정 조건을 만족시키는 상황
* 확률 : 관심 있는 사건이 발생할 가능성을 0과 1 사이의 값으로 표현한 값

* 확률을 계산하는 다양한 방법
1) 경우의 수
2) 모의 실험
3) 데이터 활용

데이터 공간의 구성 : 변수만큼 차원이 생성, 관측치 수만큼 해당 차원에 점이 생성

* 분포 : 관측치들이 공간에 퍼져있는 모양
* 밀도 : 어떤 분포에서 특정 값이나 구간의 관측치 비중을 표현한 숫자. 전체 밀도(면적)의 합은 1이 되어야 한다.

* 조건부 확률 : 특정 조건을 만족하는 관측치의 확률


* 독립 : 두 사건 A, B가 서로 관계가 없는 경우 

 

전체에서의 A의 비율과, B 내에서의 A의 비율이 같다면, A와 B는 독립임을 벤다이어그램으로 위와 같이 나타내볼 수 있습니다. 이 말은 즉, A는 매우 골고루 분포되어 있고 B라는 사건의 발생 여부에 영향을 받지 않는다는 것을 의미합니다.


6. 모집단과 표본의 개념 이해하기

1) 모집단 : 관심있는 대상 전체

2) 표본 : 모집단에서 추출한 관심 대상 일부

3) 추정(estimation) : 데이터로 모집단의 특성을 확인하는 과정

4) 검정(test) : 확인된 차이의 유의미 여부나 가설의 타당성을 판단하는 과정

7. 통계 검정의 개념 이해하기

검정의 활용 : 데이터 속 차이나 변수 간의 관계 등이 유의미함을 보일 때 활용
- 귀무가설과 대립가설 중 확률적으로 더 높은 쪽을 선택하는 과정
- 보수적으로 판단하기 위해서 귀무가설을 기준으로 판단한다.

 

귀무가설 : 차이, 관계가 없을 가정
대립가설 : 귀무가설과 반대로 차이, 관계가 있음을 가정


* 유의확률(p-value) : 귀무가설이 맞다는 가정 하에 데이터 속 차이나 관계가 나올 가능성을 계산한 조건부 확률 
유의확률 < 0.05 : 대립가설을 선택 
유의확률 > 0.05 : 귀무가설을 선택 

=> p-value : 귀무가설이 맞다고 가정할 때 현재의 특성이 나올 확률 

*유의수준 (significant level) : 유의확률에 대한 판단의 기준값 

ex) 관측 결과를 통한 모집단 유추 검증 예시 : 

빨간 공과 파란 공으로 이루어져 있는 모집단에서 10개의 공을 뽑았더니 7개의 빨간색 공과 3개의 파란색 공이 나왔다. 모집단의 비율을 유추해보자.

 

귀무가설 : 모집단의 빨간공 / 파란공 비율은 0.5이다.( = 1:1이다)

대립가설 : 모집단의 빨간공 / 파란공 비율은 0.5가 아니다.

 

 위와 같이 관측치가 나왔을 때, 귀무가설이 유의미한 결론인지, 대립가설이 유의미한 결론인지 파악해야 합니다. 따라서 귀무가설이 참이라는 가정 하에(빨간공의 개수 = 파란공의 개수) , 이항분포를 그려봅니다. 위의 사진 아래쪽의 표는, 빨간 공과 파란 공의 개수가 같을 때, 10개의 관측치 중 x개의 빨간 공이 관측될 확률입니다. 

  모집단의 빨간 공과 파란 공의 개수가 같을 때, 모집단에서 10개의 공을 뽑아 7개 이상의 빨간 공이 관측될 확률은 표의 빨간색 부분의 확률을 합친 결과와 같다( = 0.172). 유의 수준이 0.05라고 할 때, 0.172>0.05이므로 우리는 귀무가설을 택한다. 

  이 결과를 해석해보면, 귀무가설을 가정했을 때, 현재 발생한 사건이 극적으로 낮은 확률에 의해 나타난 관측치는 아닌가?를 검정해보는 과정이다. 실험 결과 유의수준(p-value)가 0.172로 그렇게 낮은 확률이 아님을 확인했고, 따라서 우리는 귀무가설을 택한다.


ex) 상관계수의 의미 검증 : 공부시간과 성적의 상관계수가 0.7이 나왔다. 의미있는 것인가?

 

귀무가설 : 공부시간과 성적은 상관이 없다.(상관계수 = 0)

대립가설 : 두 변수가 상관이 있다.(상관계수는 0이 아니다.)


- 랜덤으로 공부시간 - 성적을 매칭하고 상관계수를 구한다(1000개)
- 상관계수의 분포표를 그리고 0.7이 나올 확률(p-value)를 구한다.
- 유의확률을 구한다.(0.025) < 0.05이므로 대립가설인 성적과 공부시간은 관계가 있다 를 선택한다.

9. 검정 통계량의 활용

검정 통계량 :
- 데이터 속에 있는 차이, 관계의 정도를 숫자로 표현
- 데이터가 귀무가설과 얼마나 다른지 계산한 통계량
- 보통 검정 통계량이 클 수록 차이가 크다.

1. 상관분석 : 두 수치형 변수의 상관계수에 대한 유의성 검정
- 이전 예제에서는 우리가 직접 랜덤하게 데이터를 만들었지만, 이미 통계학자들이 만들어놓은 T 분포와 T값을 통해 확인해볼 수 있음.


2. 교차표의 독립성 검정 : 카이제곱값(실제값과 예상값의 차이의 크기)을 활용

- 두 범주형 변수가 서로 독립인지 아닌지를 판단하는 과정(독립 = 두 변수는 관계가 없다)

* 귀무가설 : 두 변수는 독립이다.(관계가 없다.)

* 대립가설 : 두 변수는 독립이 아니다.(관계가 있다.)
- 두 범주형 변수의 교차표와 독립을 가정한 교차표를 비교
1) 아래와 같이 기본적으로 주어진 표(파란색)을 가지고, 독립일 경우의 표(빨간색)과 비교한다. 빨간색 표는 합계들을 기반으로 채워볼 수 있다. (ex : 20대-A는 연령별 비율 0.3, 상품별 비율 0.5이므로 독립임을 가정하면 100 * 0.3 * 0.5 = 15이다.) 이와 같이 두 교차표를 뺀 뒤 각각 제곱을 한 뒤 더하면, 우리가 원하는 카이제곱값을 얻을 수 있다. 이 카이제곱값을 자유도 분포에 넣어주면 유의수준을 구할 수 있다!

3. 그룹별 평균 차이에 대한 검정

분산분석(ANOVA) : 
- 그룹별 평균의 차이가 유의미한지를 검정
- 전체 그룹 평균 대비 그룹별 평균 차이의 정도를 측정

 



?자유도는 도대체 어떤 의미를 가지는가?

12. 데이터를 활용한 예측

기술통계와 추론통계

*확률 모형 : 과거, 현재를 바탕으로 미래 예측

* 심슨의 역설
 : 어떤 집단이 모든 부분에서 상대적으로 확률/평균이 높아도 전체 확률/평균은 오히려 작은 현상
- 그룹별 확률/평균 차이와 집단별 선호 그룹의 차이로 발생

13. 확률모형의 이해

* 지도학습(supervised learning) : 관심변수와 설명변수의 관계를 확인하여 예측에 활용

* 범주형 관심변수 : 
- 관심 사건을 정의하거나 실제 범주형 변수에서 관심있는 수준을 선택

ex) 카드사용금액대에서 100만원 이상

- 설명변수를 활용한 조건부 확률을 계산
ex) 연령, 거주지 등 신상정보와 금융정보를 활용하여 카드 사용금액이 100만원 이상일 확률 예측

* 수치형 관심변수 :
- 관심있는 수치형 변수를 선택하고 설명변수르르 활용한 조건부 평균을 계산한다.

*오차 : 확률 모형에서 설명변수로 설명할 수 없는 관심변수의 차이

14. 선형 회귀의 이해

다중선형회귀 : 설명변수 X가 여러개인 경우

선형 : 관심변수와 설명변수는 정비례
설명변수들끼리는 서로 영향을 미치지 않음

* 회귀 계수의 계산
 : 


* 다중 선형 회귀 모형에서는 선형대수학을 공부해야 한다. 행렬간의 곱은 공분산을 계산한 것.


* 변수 선택 : 확률 모형에서 필요한 설명 변수만 선택하는 과정

15. 나이브 베이즈 판별기
 : 복수의 설명변수 조건에 따라 관심변수의 수준을 예측
- 설명 변수 간 독립을 가정하고 각 조건부 확률을 곱해서 예측

* 베이즈 정리 : 


* 나이브 베이즈 판별기 직접 한번 써보기
장점 : 확률 계산의 편의성
단점 : 설명 변수 간의 조건부 독립을 가정

16. 의사결정 나무모형

* 분할 : 
 : 설명 변수에 조건을 추가하여 관측치를 분할한다.
- 조건부 평균이나 조건부 확률의 차이를 기준으로 분할 기준을 설정한다.

* 재귀 분할 : 상위 그룹을 분할하고 분할된 그룹을 또다시 분할하는 과정을 반복

* 가지치기 : 분할된 그룹 중 그룹 간 차이가 충분히 크지 않은 그룹을 제거한다.

* 의사결정나무 : 설명변수를 활용하여 관측치 그룹 간 관심 변수의 차이를 설명

- 수치형 관심변수 : 조건부 평균의 차이를 계산
- 범주형 관심변수 : 조건부 확률의 차이를 계산

* R 실습

* choose(전체 개수, sample 개수) : 조합의 수 계산
* mean(SCORES$국어점수>=90) 와 같이 Boolean 상태에서 평균을 구하면 해당 조건을 만족하는 비율을 구할 수 있다.
* hist(x, probability = True) => 밀도로 변환 가능
* subset(데이터, 조건)
* sample(1:45, 6, replace = 복원추출 가능 여부, defalut False) : 45개 숫자 중에서 6개를 임의로 샘플링한다.
cor.test(heights$father, heights$son) 두 변수의 상관계수를 구하고, 그 유의미성 또한 검증할 수 있다.
chisq.test(table_raw) 교차표에서의 변수간의 독립성을 검증할 수 있다.
* aov(SCORE ~ TEAM, data=team_score) : 분산분석
* lm(종속변수 ~ 독립변수)
* rpart : 의사결정나무모형 만들기

반응형
반응형

 

이번 문제는 [프로그래머스 - 힙 - 디스크 컨트롤러] 입니다!

문제 링크 :

https://programmers.co.kr/learn/courses/30/lessons/42627

 

코딩테스트 연습 - 디스크 컨트롤러 | 프로그래머스

하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의

programmers.co.kr

이전에 풀어봤던 라면공장 문제와 매우 비슷한데, 컴퓨터의 스케쥴러의 매우 간단한 구조를 구현하는 것입니다.
주어진 컨트롤러는 작업 요청이 들어온 작업들 LIST를 가지고 있고, 이 LIST에 있는 모든 작업들이 완료되었을 때,
평균 소요시간(작업완료시점 - 요청시점) 이 가장 짧아지는 작업 순서를 구하는 것이 문제입니다.

자세한 내용은 문제를 직접 보시는 것이 좋을 것 같습니다.

 

변수 : 

  1) t : 현재 시간

  2) jobs : 작업 list

  3) t_spent : 작업별 소요시간을 적은 list(순서대로 X)

  4) a_jobs : 특정 시점 t에서 수행 가능한 작업 list

 

방법 : 

  1) 현재 시점 t에서 수행 가능한 작업들을 찾아 a_jobs에 넣는다.

  2) 가장 짧은 작업시간을 가진 작업을 수행한다.(작업시간을 기준으로 Reverse Sort 후 pop)

  3) 현재 시간에 작업시간을 더한다.

  4) 소요시간을 t_spent에 넣는다.

  5) 더 이상 작업 리스트에 작업이 남아있지 않다면, a_jobs에 남은 작업들을 순차적으로 수행한다.

  6) t_spent의 평균을 구한 후 return한다.

 

이상 끝-!

 

반응형
반응형

이번 문제는 [프로그래머스 - 힙 - 라면공장] 입니다!

문제 링크 :

https://programmers.co.kr/learn/courses/30/lessons/42629

 

코딩테스트 연습 - 라면공장 | 프로그래머스

라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다. 현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량

programmers.co.kr

 

 

1. 변수 : 

  1) stock : 초기 재고량

  2) dates : 입고 가능 일자

  3) supplies : 입고 가능 수량(dates와 매치됨)

  4) k : 버텨야 하는 일수

 

2. 방법 : 

  1) dates, supplies를 역순으로 바꾼다.(pop(0) 대신 pop()을 활용하기 위해)

  2) 초기 재고량(stock)으로 버틸 수 있는 기간 내에 받을 수 있는 수량을 확인한다.(두번째 while문)

  3) 받을 수 있는 수량 중 가장 큰 것을 택하여 받는다.(가장 큰 것을 빼기 위해 -supplies 사용)

  

이상 끝-!

 

반응형
반응형

이번 문제는 [프로그래머스 - 힙 - 더 맵게] 입니다!

문제 링크 :

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게 | 프로그래머스

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진

programmers.co.kr

작년 말 카카오 코딩테스트에 나왔던 문제같은데....못 풀었던 것 같은 기억이 납니다.

힙 자료구조를 사용하니 매우 쉬운 문제였는데요...문제는 이 자료구조를 사용해야겠다!라는 생각이 잘 떠오르지 않는다는겁니다. 항상 많이 풀어보고 고민해봐야 하는 것 같습니다.

 

1. 변수 : 

  1) answer : 답

  2) scoville : 각 음식의 맵기 정도가 담긴 배열(즉, List의 길이는 주어진 음식의 수를 나타냅니다.)

  3) a = 가장 scoville 지수가 낮은 음식

  4) b = 두번째로 scoville 지수가 낮은 음식

2. 방법 : 

  1) 음식 리스트 중 가장 scoville 지수가 낮은 음식의 scoville 지수가 K보다 작은지 판별한다.  

    1-1) False : 낮은 scoville 지수를 가진 두 음식을 음식 리스트에서뽑아낸 뒤(a, b), 새로운 음식의 scoville 지수를 음식을 List에 추가한다.

    1-2) True : answer를 return한다.

 

  * 이 때 만약 음식 List의 길이가 1개에 다다랐다면, -1을 return해야 합니다. 이상 끝-!

 

 

반응형
반응형

이번 문제는 [프로그래머스 - 스택/큐 - 주식 가격] 입니다!

 

문제 링크 :

https://programmers.co.kr/learn/courses/30/lessons/42584

 

코딩테스트 연습 - 주식가격 | 프로그래머스

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지

programmers.co.kr

이번 문제는 주식 가격을 예측..!!하는 것이 아니라 주식 가격이 최초로 떨어지기 전까지의 시간을 구하는 문제입니다!

주식 가격 변동을 나타낸 배열 [a, b, c, d, e]가 주어진다면 a보다 낮은 가격이 최초로 나타난 시점 까지의 길이 a', b보다 낮은 가격이 최초로 나타난 시점까지의 길이 b'....등등을 구해서 [a', b', c', d', e']의 배열을 반환하시면 됩니다.

문제는 매우 간단하죠! 풀이도 그리 어렵지 않습니다. (저와 같이 그냥 막 푸신다면..)

 

1. 변수 : 

  1) prices : 가격 변동을 나타낸 배열

  2) pr : 배열 prices의 길이

  3) standard : 가격 변동의 기준

  4) first_drop : 최초로 가격이 떨어진 시간까지의 길이

 

2. 방법 : 

  1) 기준이 되는 가격을 구한다. (standard)

  2) price의 가격 변동값들에 대하여 standard보다 낮은지 판단한다.

    2-1) True : 1초를 반환한다.

    2-2) False : first_drop에 1초를 더한다.

    2-3) IF문 : 만일 prices 배열의 맨 끝에 도달했다면, first_drop을 answer 배열에 추가한다.

  3) 마지막 가격은 하락할 일이 없으므로 answer에 0을 추가한다.

 

3. 후기 : 음...뭔가 생각나는대로 풀어서 풀긴 했는데 매우 찜찜한 문제입니다. 매우 비효율적으로 보인단말이죠....일단 풀긴 했으니 패스! 이상 끝-!

 

 

반응형
반응형

이번 문제는 [프로그래머스 - 스택/큐 - 다리를 지나는 트럭] 입니다!

 

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭 | 프로그래머스

트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서

programmers.co.kr

문제는 다음과 같습니다.

 

[입력 예시]

위와 같이 다리 길이, 다리 허용 무게, 순서대로 지나가야 하는 트럭이 주어졌을 때, 총 걸리는 시간을 구하라!

모든 트럭의 속도는 1이며, 트럭은 배열에 주어진 순서대로 반드시 지나가야 합니다.

 

저는 다음과 같이 문제를 풀었습니다.

1. 변수 : 

  1) bridge : 다리에 올라가 있는 트럭을 나타낸 배열

  2) bridge_length : 다리의 길이

  3) weight : 다리 허용 무게

  4) truck_weights : 트럭의 무게를 지나야 하는 순서대로 나타낸 배열

 

2. 방법 : 

  1) bridge 생성, bridge에 올라가야 하는 첫번째 트럭 삽입 (bridge[-1])

  2) 다리 위에 한대의 트럭이 더 올라갈 수 있는지 확인

    2-1) True : 트럭을 새로 삽입

    2-2) False : 다리 위의 트럭들을 한칸 왼쪽으로 이동시킴

  3) 더 이상 다리 위에 올라갈 수 있는 트럭이 없는 경우 마지막 트럭이 빠져나올 때까지의 시간을 구한다.

 

3. 후기 :

 

위와 같은 방법으로 문제를 풀어 아래와 같은 코드를 작성하였습니다.

다만, 아래와 같은 방법은 간신히(성공했다, 실패했다를 반복합니다.) 시간 Limit를 통과했는데요, 이유는 pop(0)때문입니다. 리스트에서 pop(0)을 하게 되면, 0번째 요소를 빼낸 뒤 나머지 요소들의 index를 재배열하는 과정을 거치게 됩니다. 따라서 pop(0)은 매우 지양해야 하는 방법입니다. 

 

→ truck_weights를 거꾸로 재배열 한 뒤, pop을 사용하는 방법이 훨씬 효율적으로 사용하는 방법입니다. 참고하세요.(제 코드는 정말 허접하게 푼거라 부끄럽네요..) 이상 끝-!

 

 

반응형
반응형

하.. 회사에서 너무나 잦은 중국 출장!

할줄 아는 건 한국어와 영어밖에 없다보니 정말 답답했습니다.(주말에 여행도 못하고..)

좀 배울 시간이 나려나..? 하면 계속 중국 출장을 다니느라 시간이 없던 차에 드디어 중국어 수업을 듣기 시작했습니다.

 

첫 시작은 파고다 강남점에서 채민 선생님이 진행하는 기초 중국어 단기 수업입니다.

중국어는 성조나 한자 때문에 너무 어렵다는 인식이 강하게 박혀 있던 터라 학습 예상 기간을 길게 잡긴 했지만, 우선 목표는 단 하나! 문맹이라도 초등학생 수준으로 이야기하기!입니다.

 

한 2년 잡으면...가능할지 모르겠지만 우선 이번 강의로 좋은 시작이 됐으면 좋겠습니다.

 

사용하는 책은 이녀석이고 교보문고에서 사면 10% 더 싸니 참고하세요~

 

반응형

+ Recent posts