목록전체 글 (150)
Just Fighting
https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 위에서 부터 차례대로 합해 가장 큰 합를 리턴한다. 이때, 두 방향으로밖에 못내려감. 7 -> 3, 8 3 -> 8, 1 내려가면서 더하고, 더한 값이 원래 값보다 작으면 원래 값을 사용하는 dp 문제! def solution(triangle): dp = [[0]*i for i in range(1,len(triangle)+1)]# dp배열 미리 만들어 놓음 dp[0][0] = tria..
https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 입국심사를 기다리는 사람 수 n, 각 심사관이 한명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어진다. 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 리턴하라. 입국 심사는 동시에 한 명만 가능하고, 빨리 끝나는 심사대로 가서 심사를 받을 수 있음. 문제의 제한사항이 위와 같았다. 짧은 예시만 보고 처음에는 ..
https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr number와 N이 주어진다. 숫자 N과 사칙연산을 통해 number를 표현할 수 있다. 아래는 5를 이용해 12를 나타낸 예시이다. 이렇게 number와 N이 주어지면 N이 사용된 가장 적은 횟수를 리턴하면 된다. 만약 8회 이상이라면 -1을 리턴한다. N이 5번 사용된 것은 N이 1번 사용된 것과 N이 4번 사용된 경우의 사칙연산으로 이루어질 수도있고 2번, 3번 사용된 경우의 사칙연산으로 이루어질 수 있다. 따라서 dp 문제다!!!! 그리고 사칙연산은 연산자에 따라 앞뒤로 어떤 수가 오는지가 중요하니..
미리 저장된 데이터를 새로운 이름을 사용하고 싶다면 set문을 사용하면 된다. 아래 사진은 a에 저장한 데이터를 그대로 가져와서 a_2의 데이터로 사용하겠다는 의미다. sashelp에 있는 bweight라는 데이터를 가져와 weight라고 이름 붙이고, 15개의 행만 출력하라는 의미다. 사진과 같이 title문을 사용하면 제목을 붙일 수 있다. sasuser에 있는 admit 데이터를 Admit1의 데이터로 저장한다. 그리고 데이터의 컬럼 중 name, sex, age의 컬럼만 가져와 출력하겠다는 의미이다. 이때 출력 결과의 제목을 보면 바로 위에 사진에 설정해 놓았던 'Contents of Weight'인 것을 알 수 있다. 이번에는 set으로 데이터를 가져오지만 data문에서 keep을 사용함으로써 ..
input문은 아래처럼 쓸 수도 있다. 저 숫자의 의미는 몇번째 열의 데이터를 컬럼의 값으로 사용하겠다는 의미가 된다. 순서를 섞을 수도 있다! 데이터가 띄어쓰기가 되어있지 않아도 숫자를 이용해 제대로된 데이터셋을 형성할 수 있다. 사용하고 싶은 컬럼만 사용하는 것도 가능! 컬럼 값에 띄어쓰기가 있는 경우 숫자를 이용해 띄어쓰기 있는 문자열을 하나의 값으로 저장할 수 있다. 또한 위치를 정해 자릿수도 지정할 수 있다. 아래 사진처럼 age컬럼의 값을 17번째열에서부터 2개의 자리수의 값을 데이터로 갖겠다는 의미가 된다. +(숫자)의 의미는 앞에 컬럼의 끝에서 (숫자)만큼 떨어져 있는 문자의 열을 의미한다. 즉, jobtitle은 lastname이 끝나는 열에서 7만큼 떨어져있는 3개의 문자열을 의미한다...
2022.02.08 - [Web/백엔드] - 웹 크롤링하기 2 (Selenium) 위의 게시글에서 사용한 selenium을 사용한 크롤링을 통해 데이터를 수집할 수 있었다. 이번엔 csv파일로 변환하는 작업을 해보았다. 먼저 라이브러리부터 import해준다. 그리고 크롬드라이브의 위치를 지정해준다. from selenium import webdriver from selenium.webdriver.common.by import By import pandas as pd browser = webdriver.Chrome('c:/chromedriver/chromedriver.exe') # chromedriver 다운받고, 다운 받은 경로 써주어야함 그리고 컬럼별로 list를 만들어준 뒤, 크롤링을 통해 가져온 데..
엑셀파일을 불러오는 방법은 아래 사진과 같다. libname으로 엑셀파일을 설정하고, proc print문에 있는 코드처럼 작성해주면된다. data = score2.'sheet1$'n; 의 의미는 엑셀파일의 sheet1의 데이터를 출력하겠다는 의미이다. 'hsb_study'라는 시트의 데이터를 가져오겠다는 의미가 된다. proc means문의 결과는 아래 사진과 같이 기초통계랑을 볼 수 있다. 특정변수 별 기초통계량을 보고싶을 땐 class문을 사용한다.
csv파일을 불러오는 것은 txt파일을 불러오는 방식과 비슷하다. 대신 csv파일을 불러올 때는 dim=',' 을 추가해주어야한다. 뒤에 오는 firstobs는 출력할 데이터의 시작을 정하는 것이다. firstobs=2 라면 2번째 행부터 데이터를 가져오겠다는 이야기! 첫 행은 컬럼이기 때문에 두번째 행부터 가져오는 것이다. csv파일을 가져오는 것은 아니지만 데이터가 아래 사진과 같이 나타나 있다면 infile datalines dsd; 를 사용하면 된다! firstobs에 이어서 obs는 행의 개수를 의미한다. 즉, 아래 사진은 3번째 행부터 50개의 행을 출력하겠다는 의미. 파일을 불러오는 경우가 아니어도 firstobs 사용 가능! data문에 firstobs가 있는 경우, 데이터 자체가 변경된다..
파일을 불러오기 위해서는 infile을 사용한다. 텍스트 파일이 있는 경로를 작성해주면 된다. 라이브러리를 생성하기 위해서는 libname이라는 키워드를 사용한다. 'C:\stat480\data'를 'sassas'라는 이름의 라이브러리로 지정한다. 그리고 sassas안에 score라는 이름의 데이터셋을 저장한다. 잘 저장된 것을 볼 수 있다. 아래 사진은 텍스트파일을 yeeun이라는 라이브러리에 넣는 것이다.
기본 골격은 아래 사진과 같다. data문에는 데이터의 이름, 컬럼이름, 데이터를 담는다. data 옆에 써있는 dataset1이 데이터 이름이 되며, input 옆에 쓰인 단어들이 컬럼이름이 된다. 이때, 문자열 데이터인 경우에는 '$'을 적어준다. 그리고 datalines;를 써주고 데이터를 써주면 된다. 그 밑에 proc print가 데이터를 프린트하겠다는 의미를 갖는다. data문에 사용한 컬럼이름을 바꾸고 싶다면 아래와 같은 방법을 사용하면 된다. data문이나 proc print문에 label 이전컬럼이름 = '바꿀컬럼이름' 을 작성해주면 된다. 그리고 proc print문에 있는 데이터 이름 옆에 label을 붙여준다. 위의 두 사진의 결과로 아래 사진처럼 데이터가 프린트된다. 옛날에 sas..