전체 글

공부와 경험의 기록!
·Algorithm (PS)
def solution(N, stages): answer = [] length = len(stages) for i in range(1, N+1): count = stages.count(i) if length == 0: fail = 0 else: fail = count/length answer.append((i, fail)) # 실패율이 0이어도 필요함 length -= count answer.sort(key = lambda x : x[1],reverse = True) answer = [i[0] for i in answer] return answer 유형 : 정렬 원래 풀이는, 스테이지 도달한 사람을 센 array, 실패율 array, 실패한 사람 array 각각 만들어줬었는데 시간 초과가 났다 ㅠㅠ 핵심..
·개발일기
21일이면 습관이 형성된다고 하는데 !! 뿌듯하다 남은 방학 동안도 알고리즘 공부 제대로 정복하겠어 ! 플레 가보자고 ~!
·iOS
콜백 함수 콜백함수 어디서 많이 들어봤는데 대체 뭘까!!!!! callback 함수란 1. 다른함수의 인자로써 이용되는 함수 2. 어떤 이벤트에 의해 호출되어지는 함수 오케이... 엄청 간단한 의미었다 !
·Algorithm (PS)
https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net n = int(input()) a = [] for i in range(n): a.append(input().split()) a.sort(key=lambda x:(-int(a[1]), int(a[2]), -int(a[3]), a[0])) for i in a: print(i[0]) lambda 함수 는 익명함수 ! 즉 이름이 없는 함수이다. runtime에 생성해서 사용할 수 있..
·Algorithm (PS)
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net union 은 visited 여부를 확인하기 위한 리스트이다. index는 while문을 중단시키기 위한 지점이 필요해서 만들었다. for 문 2번 돌면 인구이동을 각 칸에 대해 모두 진행했다는 것이므로 break 로 탈출한다. '인구이동' 즉 while문 한번씩 처음부터 끝까지 실행되는 횟수를 result 변수로 카운트하고 있다. Queue 가 다 비면 -> 연합 구성이 끝났다는 ..
·Algorithm (PS)
이번 문제는 구현하기 좀 까다로웠다 !! 2차원 배열을 제대로 연습할 수 있는 징한 구현문제이다 https://www.acmicpc.net/problem/1451 1451번: 직사각형으로 나누기 첫째 줄에 직사각형의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 직사각형에 들어가는 수가 가장 윗 줄부터 한 줄에 하나씩 M개의 수가 주어진다. N과 M은 50보다 작거나 같은 자연수이 www.acmicpc.net 1. 직사각형을 나누는 방법은 총 6개다 1) 세로로 3분할 2) 가로로 3분할 이렇게 6가지이다. 3) 전체 세로분할 후 가로분할 4) 전체 세로분할 후(R1, R3), 가로분할(R2) 5) 전체 가로분할 후(R1), 세로분할 (R2,R3) 6) 전체 가로분할 후 (R1, R2), 세로분..
코딩 문제 풀 때 굉장히 알아두면 유용한! 문자열을 다룰 때 쓰이는 join 함수 1. 형태 string.join(iterable) 여기서 string 에 들어가는 문자열은 구분자이다. 물론 "".join(iterable) 이렇게 빈 문자열을 붙일 수도 있다. 2. 예시 i) 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("".join(myNumber)) ii) 공백 문자를 사이에 두고 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("_".join(myNumber)) myStr = ["Hello", "My", "Name", "is", "Minjee"] print("!!!!!!".join(myStr)..
·Algorithm (PS)
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 재미있는 그래프 문제 !! 사실 처음에는 itertools의 permutations 함수를 사용해서 연산자들의 조합을 n-1개 모두 고르는 순열 리스트를 for문으로 돌리려고 했으나 시간초과가 떴다 ;; dfs로 풀면 시간초과 없이 풀 수 있다. 상하좌우를 돌듯이 사칙연산을 재귀호출해주는 것이다 i 는 인덱스이고 now는 현재 계산과정을 거치..
minjiwoo
MJ workspace