목록전체 글 (150)
Just Fighting
https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr results는 선수의 번호를 두개씩 담은 배열들이 들어있다. [4, 3]일 경우에 4번선수가 3번선수를 이겼다는 의미가 된다. 이때 정확하게 순위를 매길 수 있는 선수의 수를 리턴하면 된다. 경기 결과에 모순은 없음. 어떤 선수를 이긴 선수는 그 어떤 선수에게 진 선수를 무조건 이긴다. 또, 어떤 선수에게 진 선수는 그 선수를 이긴 선수에게 무조건 진다. 이 두개를 이용해 문제를 풀어야 한다. 처음엔 그냥 배열로 ..
https://www.hackerrank.com/challenges/coin-change/problem?isFullScreen=true The Coin Change Problem | HackerRank Given a list of 'm' coin values, how many ways can you make change for 'n' units? www.hackerrank.com 사진과 같이 n과 c가 주어졌을 때, c로 n을 만들 수 있는 경우의 가지 수를 구하는 문제이다. 3을 만들 수 있는 조합이 저 3개인 것이다. https://www.acmicpc.net/problem/2293 백준의 이 문제와 똑같은 문제! 기본적인 dp문제인데 조금 헤맸다. dp[i] +=..
배열 속에 있는 특정 숫자나 문자의 개수를 세고싶을 때는 딕셔너리를 하나 만들고 for문을 돌려서 그 글자가 딕셔너리에 있으면 +1 없으면 =1 해주면 되지만, 그것을 더욱 편하게 만들어 줄 수 있는 함수가 있다!!!!!!! collections라는 라이브러리에 들어있는 Counter()라는 함수다. 코테 문제를 풀때 몇번 이용했었는데, 계속 까먹어서 블로그에 올린다. 먼저 라이브러리 임포트 해준뒤에 아무 숫자나 막 쳐서 함수에 적용시켜 보았다. 아래 사진처럼 예쁘게 딕셔너리에 담겨있는 것을 확인할 수 있다~! import collections data = [2,5,4,5,2,1,5,4,3,2,1,8,7,8,5,1,6,2,1,8,7,8] collections.Counter(data) 여기서 가장 많은 숫..
proc sort문은 데이터를 정렬할 때 사용한다. data에는 정렬할 데이터를 넣고, out에는 정렬된 데이터를 부를 이름을 넣는다. 그리고 기준으로 정렬할 컬럼을 by문에 써주면 된다. 아래 사진은 age와 gender를 기준으로 정렬한 a 데이터를 aout이라는 이름을 붙이겠다 뜻이다. 디폴트는 오름차순! 내림차순으로 정렬하고 싶을 때는 descending을 변수 앞에 작성해주면 된다.
필요한 데이터를 만들기 위해서 데이터를 합치고, 값을 변경하고, 결측치를 처리했다. 먼저 항상 그랬듯이 연결부터! import findspark findspark.init() # spark 생성 import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder.getOrCreate() 4가지의 데이터를 합치고자 했기 때문에 다 불러왔다. show()를 이용해 잘 가져와졌는지 확인도 했다. match_data = spark.read.csv("hdfs://localhost:19000/data/match_data_2.csv", header="true", inferSchema="true") winrate = spark.read.csv..
hdfs에 저장된 데이터를 변환해서 다시 저장하고 싶었다. 데이터를 변환하는 방법도 여러가지 있지만, pandas를 이용해 데이터를 변환하고 그 데이터를 다시 hdfs에 넣는 방법을 작성하고자 한다. 먼저 데이터를 불러온다. 그 전에 pyspark 연결부터! hdfs에서 데이터 가져왔었어도 됐는데, 내 컴퓨터에 저장된 데이터를 가져왔다^^;; import findspark findspark.init() import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder.getOrCreate() import pandas as pd # 파일 불러오기 data = pd.read_csv('파일명') 내가 원하는 데이터가 될 수 있도록 ..
하둡을 실행한다. 실행하고 hdfs dfs -ls / 를 하면 파일 목록을 볼 수 있다. hadoop fs -mkdir [디렉터리 명] 디렉터리 명 앞에 '/'를 꼭 붙여주어야 한다. hadoop fs -put [파일위치] [디렉터리 명] 다시 -ls로 확인해보면 잘 들어가있는 것을 확인할 수 있다.
https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 출발지점부터 도착지점까지의 거리는 distance이고, 두 지점 사이에 rocks의 위치에 바위가 존재한다. 바위중에 n개를 제외한 바위 사이의 거리가 최대일 때, 그 거리를 출력하라. 바위의 개수는 1~50000개이기 때문에 두개를 제외하는 경우를 다 따지게 되면 너무 많은 연산을 하게된다. 이럴 때는 이분탐색을..
https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 도둑이 집을 털려고 한다. 이때 서로 인접한 집은 방법장치가 연결되어있어 인접한 두 집은 털 수 없다. money는 각 집을 털어 벌 수 있는 돈. 도둑이 최대로 훔칠 수 있는 돈을 리턴하면 된다. 일단 dp문제이기 때문에 식을 만들기 위한 고민을 했다. 인접한 집은 털 수 없기 때문에 전 집까지 훔칠 수 있는 최대 금액과 전전..
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 집에서 학교까지 가는 최단경로의 개수를 구해서 리턴하라. 단, 중간에 물 웅덩이가 있음. 물 웅덩이는 지나갈 수 없으며, 이동은 오른쪽과 아래로만 가능하다. 요런 문제 확통에서 많이 봤던 거라 팩토리얼로 풀어봤더니 바로 빠꾸먹음ㅎㅎ dp문제이다. 한 칸을 기준으로 윗 칸과 왼쪽 칸의 최단경로 개수를 더해주면 현재 칸..