[Java] Java의 main() 메서드

자바의 main() 메서드 Java 프로그램은 특정 순서로 실행되는 Java 명령의 시퀀스기 때문에 시작과 끝이 있다. Java 프로그램을 실행하려면 JVM에 프로그램 실행을 시작할 위치를 신호해야한다. Java의 모든 명령어(코드)는 Java 클래스 내에 위치해야한다. 클래스는 함께 속한 데이터와 명령어를 그룹화하는 방법이다. 따라서 클래스는 변수와 메서드를 모두 포함 할 수 있다. 변수는 데이터를 포함할 수 있으며, 메서드는 데이터에 대한 작업 집합(명령어)을 함께 그룹화한다. 자바 클래스 선언 Java 코드는 클래스와 동일한 파일 이름을 가진 파일에 있어야하며 파일 접미사로 끝나야한다. 즉 파일이 클래스 이름과 일치하는 파일에 있어야 Java SDK의 Java 컴파일러 또는 Java IDE 내부에서..

Java 2022.07.28 0

[백준] 틀렸을 시 원인 분석.

틀렸습니다 : output이 틀렷을 경우. testcase 초기화를 잘해줘야함. 시간초과 : 시간복잡도 제한을 못맞췄을 경우. => 보통 추상화 알고리즘을 잘못썼거나, 변하지 않는 dp값을 여러번 계산했을 경우(계산값 저장을 하지 않는 경우), 내장함수 계산값을 저장해두지 않고 반복문마다 돌리는 경우 => 파이썬에서 어떤 값이 같은지 비교할 때 == 대신 is를 사용하면 안됨. ++list를 큐 또는 덱으로 사용하면 절대 안됨. 반드시 collection.deque를 써야함. 런타임 에러 : 실행 시 나타나는 type, index접근 등 에러, 재귀함수가 있는 경우에는 재귀 깊이 제한인 sys.setrecursionlimit(100000)을 써줘야함. 메모리 초과 : sys.setrecursionlimi..

practivceAlgorithm 2021.07.10 0

[Github] fork 사용하기(다른 사람의 repository를 내려받기)

1. 내 github에 추가할 상대 repository를 fork해오기(오른쪽 위에 포크모양 클릭) 2.fork해서 만들어진 내 github의 repository url을 복사 후 받아오기 (clone URL) 3. 원격 저장소 내 내부 저장소로 받아오기. git clone [Clone URL] 4. pull request작업 수행할 branch 생성 git checkout -b [branchName] 5. 원본 저장소를 원격 저장소에 추가. git remote add origin(branchname) [Clone URL] 6. 코드 수정 및 파일 추가 7. 수정사항을 add git add [fileName] 8.add 한 파일들을 commit git commit -sm "[commit mesagge]"..

GitHub&Git 2021.07.14 0

[D3] D3.js 튜토리얼 정리

D3.js D3은 데이터 기반 문서(Data-Driven Documents) SVG, HTML, CSS를 이용해 웹 브라우저에 맞춤형 데이터 시각화를 생성하기 위한 오픈소스 Protovis는 정적 시각화, D3은 상호작용, 전환 및 변환에 중점. 전역 JavaScript 개체 d3을 정의 D3의 기능 웹 표준 사용 데이터 기반 DOM 조작 데이터 기반 elements 동적 속성 시각화 유형 맞춤형 시각화 전환(transition) 상호작용 및 애니메이션(duration, delay, easy) D3의 장점 모든 JS 프레임워크와 함께 사용 가능. D3는 데이터에 중점을 두고 있으므로 데이터 시각화에 유리. D3는 오픈 소스기 때문에 소스 코드로 작업하고 고유한 기능 추가가 가능 웹 표준과 함께 작동하므로..

d3.js & three.js 2022.07.24 0

[SSAFY] 싸피 6기 서울 비전공 최종 합격 후기.

이 블로그는 개인 공부정리용 블로그지만 선배 기수분들에게 받은 유용한 정보들을 다음 기수들에게 물려주고자 합격후기를 작성합니다. 최초 전공인 산업공학에서 생산관리직무를 준비하다가 웹개발에 관심을 갖게 되었고 독학은 4개월정도 진행했습니다. Essay 1번문항에서 SW개발경험을 토대로 한 지원동기 2번문항에서 어떤 구직활동을 왜 어떻게 해왔고 어떤것을 얻었는지를 정리하시면 됩니다. 저는 1번문항 2번문항 둘다 2개의 소문단으로 작성했는데 3개월짜리 스마트제조 국비교육을 들은 내용으로 반을 채웠고 나머지는 혼자 독학을 한 내용과 과정, 어떻게 독학을 통해 성장해왔는지를 어필했습니다. (스마트제조의 어플리케이션단 개발, 사용자중심의 웹서비스개발에 대한 관심도를 드러냈습니다.) 개인적으로 SW개발에 대한 관심도..

후기 2021.07.05 31

[백준][Python] 18427 함께 블록 쌓기

박스 순회하며 누적합. 자주나오는 유형이다. 중요한건 누적합은 뒤에서부터 쌓아줘야 중복이 안생긴다는것. 때문에 H부터 1까지 순회해주며 더해줬다. import sys input = sys.stdin.readline N, M, H = map(int, input().split()) boxes = [list(map(int, input().split())) for _ in range(N) ] dp = [0]*(H+1) for box in boxes: for idx in range(H,0,-1): if not dp[idx]: continue for num in box: if idx + num > H: continue dp[idx+num] += dp[idx] for num in box: dp[num] += 1 pr..

백준 2021.09.14 0

[백준][Pyhton] 3780 네트워크 연결

union find의 변형. 특이한 점은 합칠때 부모가 아닌 해당 노드끼리 합치고 대신 해당 노드를 타고 올라가며 length를 갱신해줘야 된다는 점이다. 내 길이 = 부모의 길이들의 합. import sys input = sys.stdin.readline def find(x): if parent[x]==x: return x # 부모쪽 length모두 갱신 tmp = find(parent[x]) # 내 length 갱신 length[x] += length[parent[x]] # 부모값 저장 parent[x] = tmp # 반환. return tmp def union(a,b): length[a] = abs(a-b) % 1000 parent[a] = b for test in range(1,int(input(..

백준 2021.08.10 0

[백준][Python] 17779 게리멘더링2

단순히 영역을 나누는 문제였습니다. 대각선에 대해 4번 범위 설정이 필요한 문제였습니다. 핵심은 1개씩 늘어나거나 줄어드는 dx, dy설정을 어떻게 할 것인가? 결국 i에서 i의 초깃값을 빼주면 0부터 시작한 다는 것을 알 수 있었습니다. import sys input = sys.stdin.readline N = int(input()) matrix = [list(map(int, input().split())) for _ in range(N)] answer = float('inf') total = 0 for i in range(N): for j in range(N): total += matrix[i][j] for x in range(N - 1): for y in range(1, N - 1): for d1 ..

백준 2022.01.16 0

[SWEA][Python] 5656 벽돌깨기

로직이 완전 깔끔하지는 못하지만 시간 내에 통과하도록 최소한의 연산을 하도록 노력함. 기본적으로 재귀를 통해 폭탄을 한발씩 떨어뜨리는 함수, 폭탄이 블록과 만나면 연쇄 폭발을 일으키는 재귀함수 폭발 후 빈칸에 블록을 중력을 적용해 채우는 함수. 3가지 함수와 남은 블록을 카운팅해주는 함수 1개의 함수 총 4개의 함수로 구성했으며 중간에 블록이 모두 터졌을 경우 바로 종료하지는 못했으나 더이상 N을 파고들지 않아도 W를 0~ W-1까지 순회해서 continue로 넘어가게 만듦. 모두 터지지 않을 경우의 로직은 효율적으로 짰다고 생각함. def delete_block(board, x, y, cnt): board[x][y] = 0 if cnt > 1: for i in range(1, cnt): for dx, ..

swexpertacademy 2021.10.12 0

[SWEA][Python] 4012 요리사

조합을 dfs로 짜고, 조합에 속한 요소와 속하지 못한 요소간 차이를 비교. 삼성기출 스타트와 링크. 웰노운 def choose_parts(cur_node, cnt): global min_gap if cnt == N // 2: S1, S2 = 0, 0 for i in range(N - 1): for j in range(i + 1, N): if check[i] and check[j]: S1 += S[i][j] + S[j][i] elif not check[i] and not check[j]: S2 += S[i][j] + S[j][i] min_gap = min(min_gap, abs(S1 - S2)) for next_node in range(cur_node, N): if not check[next_node]:..

swexpertacademy 2021.10.12 0

[알고리즘] sweeping-line 라인 스위핑을 통한 필터링

라인스위핑 스위핑 알고리즘이란? 특정 선이나 공간을 한쪽에서부터 쓸어버리는 식의 알고리즘. 일정 좌표, 축기준 정렬 한 뒤 일정 시점의 좌우 가장 가까운 두 점사이의 거리보다 멀리떨어진 점은 조사하지 않는 방식. 가지치기를 하겠다는 이야기다.(O(NlogN)) 아래는 2261번 문제에 대한 분할정복 풀이. import sys input=sys.stdin.readline INF=sys.maxsize # 두 점 사이의 거리를 구하는 함수 def dist(a,b): return (a[0]-b[0])**2+(a[1]-b[1])**2 def divide(start,end): # 점 하나면 버림 if start==end: return INF # 점 두개면 거리구해서 리턴 elif end-start==1: retur..

[백준][Python] 22867 종점

시간정보에 대한 전처리가 귀찮은 문제. 저게 최선인가 싶긴 하다. 나머지로직은 강의실 배정, 방배정 문제와 동일. import sys input = sys.stdin.readline from heapq import heappush, heappop N = int(input()) buses = [] for _ in range(N): arrive, leave = input().split() a = int(''.join((''.join(arrive.split(':'))).split('.'))) b = int(''.join((''.join(leave.split(':'))).split('.'))) buses.append([a,b]) buses.sort() heap = [] heappush(heap,buses[0][..

백준 2021.08.26 0

[알고리즘] 2차원 배열의 회전

배열 회전 알고리즘. 노가다 회전 def rotate(key, N): def getNewValue(i, j, x, y): key[j , N-i-1] = key[i ,j] if (i == x and j == y): return getNewValue(N-j-1, i, x, y) for i in range(0, int(N/2)): for j in range(i, N-i-1): print(i,j ) tmp = key[i,j] getNewValue(N-1-j, i, i, j) key[j, N-1-i] = tmp ZIP을 사용한 깔끔한 회전 def zip_rotate(original): rotated = np.array(list(zip(*original[::-1]))) return rotated numpy를 이용해..

[GitHub] 깃헙 잔디 사라졌을 때 당황하지 않고 복구하는 방법.

1.잔디 옵션이 프라이빗으로 바뀌어있는지 확인한다. => public으로 바꾼다. 2. 깃헙에 등록되어있는 메일이 바뀌어서 local git의 메일주소와 불일치 하게 되었는지 확인한다. => 깃 메일을 일치시키던가 깃헙에서 삭제한 메일을 다시 등록한다. 3. 특정레포의 강제푸시 혹은 merge로 commit기록이 전부 초기화 됐다!! 이러면 정말 눈물나지만 해결 방법이 있다. github api를 이용해 과거로 회귀하는것. 1. Access Token을 발급받는다. https://github.com/settings/tokens 에 가서 토큰 생성을 누르고 repo전체 선택 후 발급 받는다. 2. 강제 푸시 전 혹은 레포가 정상일 적 마지막 커밋 SHA값을 확인한다. curl -H "Authorizatio..

GitHub&Git 2021.07.25 0

[Python] 특정 문자열 찾기.(find응용)

1. find 2. 여러개 탐색. a = str1.find(str2) print a while str1[a+1:].find(str2) != -1: a = str1[a+1:].find(str2) + a + 1 print a 3. re 모듈의 finditer(b,a) for a in re.finditer(str2,str1) : print a.start() start()는 시작위치 반환, end()는 끝위치 반환 4. A.startswitth(a,b) a문자가 A문자열의 b위치에서 시작되면 True반환. 5. A.endswith(a,b) =>보통 b위치에 find(a)를 넣어 True강제반환하게끔 가능.

PYTHON 기능연습 2021.07.17 0

[CS] Apache MPM vs NGINX vs Node.js

미스터코 님의 10분 테코톡 시청 후 작성하였습니다. 간단한 정의 MPM(multi-Processing-modules) 서버는 시스템의 네트웍 포트에 연결하고, 요청을 받아들이며, 받아들인 요청을 처리하기 위해 자식들에게 분배하는 다중처리 모듈(MPM)을 선택할 수있다. NGINX - 웹서버 Node.js : Chrome V8 Javascript 엔진으로 빌드된 JavaScript 런타임. [언제 어떤 것을 선택해야 하는가???????] 세가지 모두 '웹서버'의 역할을 할 수 있다. (Node.js는 웹서버역할도 WAS(Express.js)도 가능함. 때문에 결이 좀 다름.) 동시성은 예전이나 지금이나 중요하다. (어느정도 기간동안 무시하지 않을 수 있는 연결들(+요청들)) -옛적엔 너무느린 네트워크(1..

[Git][Error] LF will be replaced by CRLF in 해결

git add . git add 시 warning: LF will be replaced by CRLF in 파일명 에러가 뜰 수 있다. 이는 OS마다 줄바꿈을 바라보는 문자열이 다르기 때문에 Git 이 볼때 어떤 방식을 선택할지 몰라 경고를 내린 것 LF : Mac, Linux(Unix) 줄바꿈 문자열 = \n : 다음 줄 같은위치 CR : Mac 초기 줄바꿈 문자열 = \r : 같은 줄 맨앞 CRLF : Window, DOX 줄바꿈 문자열 = \r\n : 다음줄 맨앞 해결방법은 autoarlf를 사용해 바꿔주면 된다. 윈도우 즉 LF -> CRLF는 git config --global core.autocrlf true Linux, Mac 즉 CRLF -> LF는 git config --global co..

GitHub&Git 2022.10.02 1

[자료구조] 파이썬으로 LRU cache O(1) 구현하기

LRU cache O(1) 캐시는 불필요한 통신을 줄이고 기민한 UX를 제공 DB과부하를 막음.(query결과 저장) Proxy, CDN(유저와 가까운 CDN node) 메모이제이션 OrderedDict이용 from collections import OrderedDict MAX_SIZE = 2 cache = OrderedDict() def get_user(user_id): if user_id in cache: cache.move_to_end(user_id) return cache[user_id] if len(cache) == MAX_SIZE: cache.popitem(last=False) cache[user_id] = fetch_user(user_id) return cache[user_id] last=F..

[SEMI] PIO 통신이란?

PIO 통신 Parallel Input Output : 평행 입출력 통신 I/O 상태를 전당하는 입출력 =E84 통신 : SEMI 규약으로 장비 간 제품 이동 시 사용 물류장비들을 조작하는 AMHS(Controller), Equipments 간 통신 I/O 8 bit로 통신 Active는 IB 장비들, Passive는 STK 혹은 EQP Active와 Passive 장비들 간의 이동을 시나리오에 따라 통신하는 과정. LR, UR, READY, BUSY, COMPLETE 등. [예시 영상](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s) Reference [Youtube 깹 tv](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s)

IOT 2022.07.12 0

[백준][Python] 11404 플로이드

플로이드 워셜 기본문제 각 기점에 대해 모든 경로를 전수조사한다. 한번당 기점 하나를 거치는 경로이다. import sys input = sys.stdin.readline n, m = int(input()), int(input()) bus_datas = [[float('inf')] * n for _ in range(n)] for _ in range(m): a, b, c = map(int, input().split()) bus_datas[a - 1][b - 1] = min(bus_datas[a - 1][b - 1], c) for k in range(n): bus_datas[k][k] = 0 for i in range(n): for j in range(n): if bus_datas[i][j] > bus_da..

백준 2021.12.19 0

[자료구조 & 알고리즘] Hash 함수와 충돌 Map, Set, Table 구현체

Hash 데이터를 효율적으로 관리하기 위해, 임의의 길이 데이터를 고정된 길이의 데이터로 매핑하는 것. 해시함수를 구현하여 데이터값을 해시값으로 매핑시킨다. 내부적으로 array를 사용해 데이터를 저장. 데이터 고유의 인덱스로 key의 고유 숫자 값이 저장됨. 특정 데이터만의 고유한 위치이기 때문에 삽입 연산 시 다른 데이터 사이에 끼어들어나 삭제시 다른 데이터로 채울 필요가 없음. 즉 추가적인 비용이 없도록 만들어진 구조. Hash Table 해시 테이블은 로 데이터를 저장하는 자료 구조 중 하나이다. Key값에 해시 함수를 적용해 index를 생성하고, index를 활용하여 값을 저장, 검색 할 수 있다. Key값을 해싱하여 검색, 저장하므로 평균 시간 복잡도는 O(1)이다. (항상 O(1)이 아닌 ..

[SWEA][Python] 7465 창용마을 무리의 개수

기본적인 union-find로 무리짓고 대푯값의 갯수를 세는 문제입니다. def find(x): if parents[x] == x: return x parents[x] = find(parents[x]) return parents[x] def union(x, y): x = find(x) y = find(y) if x > y: x, y = y, x parents[y] = x for test in range(1, int(input()) + 1): N, M = map(int, input().split()) parents = {i: i for i in range(1, N + 1)} for i in range(M): a, b = map(int, input().split()) if find(a) != find(b):..

swexpertacademy 2021.10.15 0

2022 KAKAO BLIND RECRUITMENT 2차 코딩테스트 후기

HTTP 통신을 위한 코드를 미리 준비하라고 하여 기출문제를 풀며 작성한 통신 코드를 그대로 들고갔습니다. 저는 주언어가 python이라 그대로 들고갔는데 c++ 나 java를 쓰시는 분들은 python으로 전향하시느라 고생 많이 하시더군요.. 덕분에 자료구조를 남들보다 원활히 다룰 수 있는 위치에서 유리하게 시작할 수 있었던 것 같습니다. 1. CS 20분간 문제를 풉니다. 간단한 지식임이 분명하나.. 예년의 난이도에 비해 많이 어려웠고 비전공자 입장에서 특히 저처럼 취업준비 github 수준의 깊이, 정보처리기사 수준의 지식을 가지고 풀기에는 보기 1, 2개가 모르는게 나와서 좀 까다로웠습니다. 확실히 전공자들은 중간고사, 기말고사에 나올만한 유형의 문제들이라 무난히 풀었다는 의견도 많았습니다. 덕분..

후기 2021.10.07 0

2022 KAKAO BLIND RECRUITMENT 1차 코딩테스트 후기

이번 하반기 SW 직군으로 구직하기 시작하고 세 번째로 본 코딩 테스트 였습니다. (토스, 당일 오전 라인 등 서류가 필요없는 코딩 테스트만 응시) 5시간 동안 7문제가 주어지는데요. 시중의 코딩 테스트 중에는 가장 어렵다는 소문에 많이 긴장했었으나 올해의 난이도는 예년에 비해 많이 낮았습니다. 기출문제들에 비해 구현력을 많이 요구하지 않고 단순한 방법론으로 풀리는 문제들로 구성이 되었습니다. 1번. 신고 횟수가 일정이상 되는 유저를 배제시키고 신고한 유저에게메일을 보내주는 문제로 dictionary에 id에 따른 신고 횟수와 신고한 user를 저장시켜뒀다가 후에 반환시켜주면 됩니다. 백준에 set-map 자료구조로 분류되는 문제로 실버 3~4 정도의 난이도로 느껴졌습니다. 2번. 진법변환을 하고 문자열..

후기 2021.10.07 0

[백준][Python] 1727 커플 만들기

일단 n을 무조건 수가 적은쪽으로 통일 시킨 후 dp로 각각 짝을 지어줬을 시 차이가 min인 값을 누적시킵니다. 앞인자는 수가 적은쪽의 인자고 뒤 인자는 수가 많은쪽의 인자입니다. m - (n - 1)은 수가 큰거에서 작은 것을 빼고 1을 더해준 값으로 선택할 수 있는 m쪽 인자의 index 범위를 뜻합니다. import sys input = sys.stdin.readline n, m = map(int, input().split()) boys = list(map(int, input().split())) girls = list(map(int, input().split())) if n > m: boys, girls = girls, boys n, m = m, n dp = [[0] * m for __ in r..

백준 2021.10.07 0

[Python] 파이썬 requests, json으로 REST API data 보내고 받기

카카오톡 2차 정답이 없는 문제. 요구사항을 기반으로 trade-off를 감안해 로직을 설계. 로직을 개선해가는 역량. REST API 호출. API결과가 JSON 포맷. REST API 호출 처리 모듈, JSON 파서 사전 준비. pprint, bs4 쓸수있나? 일단 깔아놔보기. JSON? Java Script Object Notation. 통신을 통해 데이터를 주고 받는데 사용되는 규칙, 형식 JSON은 dictionary에 key - value 형식으로 이루어진다. REST API로 이용해 받아온 값을 JSON형태 import json, requests response = requests.get(URL).json() response = requests.post(URL,header,data).json..

Django&Python 2021.09.23 0

[알고리즘] Tree DP

Tree DP subtree에서 구한 해를 이용해 전체 트리의 해를 구하는 방식으로 진행이 됨. dp[i] = i를 루트로 하는 서브 트리의 ~같은 식으로 DP Table을 정의. dp는 보통 선형구조에서 이루어지지만 tree는 비선형 구조기 때문에 탐색 순서를 미리 정해주는게 일반적이다. / 그래프에서 우리가 dp를 사용하듯 트리도 dp를 사용하기 충분. 탐색 순서는 보통 dfs를 돌면서 나오는 트리인 dfs트리를 기준으로 한다. 트리 dp도 대부분 상태 dp가 들어간다. ex.) dp/[i]/[j] = i는 i를 루트로하는 subtree에서 i의 상태가 j일때. 보통 i번째 노드를 루트로 하는 서브트리에서 i번째 루트 노드를 포함했을 때와 포함 하지 않았을 떄 조건 중 최적값을 가져온다. 기본 구조 ..

[백준][Python] 16168 퍼레이드

오일러 경로. 한붓그리기는 홀수인 경로가 2개(출발지, 도착지)거나 없어야함. dfs로도 풀수있다함. import sys input =sys.stdin.readline def find(x): if parent[x] ==x: return x parent[x] = find(parent[x]) return parent[x] def union(a,b): a = find(a) b = find(b) if level[a] >= level[b]: parent[b] = a if level[a]==level[b]: level[a] += 1 else: parent[a] = b V, E = map(int, input().split()) graph = {i: [] for i in range(1,V+1)} parent = {i:..

백준 2021.09.05 0

[백준][Python] 2644 촌수계산

처음에 lca인가 봤더니 그냥 BFS. 이진트리라면 lca써야했을지도. import sys input = sys.stdin.readline from collections import deque def bfs(start,target): visited = {i: 0 for i in range(n+1)} visited[start] = 1 q = deque() q.append(start) while q: cur_node = q.popleft() if cur_node==target: return visited[cur_node] -1 for next_node in graph[cur_node]: if not visited[next_node]: visited[next_node] = visited[cur_node] + ..

백준 2021.09.04 0

[Django] 배경이미지 추가하기

첫번째 장고 앱 작성하기, part 6 앱의 모양과 느낌을 원하는대로 바꿔보세요 특별한 것은 정적 파일을 static 디렉토리에 모아 관리한다는 것 이외는 없다. 정적파일을 저장할 static 리렉토리 디렉토리를 지정함은 네임스페이싱을 통해 파일을 구별짓기를 원한다는 의미이다.(이름이 동일한 다른파일과) {% load static %} static 탬플릿 태그는 정적파일의 절대경로 URL을 생성한다. 배경 이미지 추가하기. images 서브 디렉토리 추가 * { padding: 0; margin: 0; box-sizing: border-box; } ul { font-family: 'Open Sans', sans-serif; font-family: 'Roboto', sans-serif; background..

Django&Python 2021.08.27 0

[백준][Python] 21939 문제 추천 시스템

핵심은 이미 푼 문제를 각 힙에서 제거하는 매커니즘. import sys input = sys.stdin.readline from heapq import heappop,heappush from collections import defaultdict N = int(input()) min_heap = [] max_heap = [] in_list = defaultdict(bool) for _ in range(N): P, L = map(int, input().split()) heappush(min_heap,[L,P]) heappush(max_heap,[-L,-P]) in_list[P] = True M = int(input()) for _ in range(M): command = input().split() if..

백준 2021.08.26 0

[백준][Python] 22941 RPG마스터 오명진

하나씩 때리면 시간초과고 마왕이 끔살나는 기준에 따라 죽는 회차가 다르니 그거만 계산해서 용사 죽는 회차랑 비교해주면 된다. import sys input = sys.stdin.readline from math import ceil h_hp, h_atk, d_hp, d_atk = map(int, input().split()) P, S = map(int, input().split()) # h_hp d_atk로 나눈 몫 올림값이 용사 사망 cnt h_death_cnt = ceil(h_hp/d_atk) # d_hp - P 를 h_atk로 때린 나머지에 P를 더한 값이 h_atk보다 작을경우 d_hp - P를 h_atk로 나눈 몫+1에 끔살 if (d_hp-P)%h_atk and (d_hp-P)%h_atk + ..

백준 2021.08.26 0

[Django] 자동화된 test code 짜기. 예제

첫 번째 장고 앱 작성하기, part 5 자동화된 테스트 작성. 자동화된 테스트 소개 자동화된 테스트란 무엇입니까? 테스트는 다양한 수준에서 작동합니다.(4수준) 유닛테스트 : 특정 모델 메서드는 예상대로 값을 반환합니까? E2E테스트 : 사이트에서 사용자 입력 시퀀스가 원하는 결과를 생성합니까? 테스트 자동화는 한 번 작성한 이후에 앱을 변경할 때 수동 테스트를 수행하지 않아도 원래 의도대로 코드가 동작하는지 확인 가능 테스트 자동화는 처음엔 어렵고 복잡할지 모르나 결국 수정과 에러를 적게하는건 테스트코드 과거엔 아키텍처 설계를 통해 시간과 비용을 절약했다면 이제는 테스트코드와 예외처리를 통해 그것이 이루어짐. 테스트를 통해 시간을 절약 특정 시점까지는 제대로 작동하는지 확인하는 테스트로 충분. 하지만..

Django&Python 2021.08.26 0

[SWEA][Python] 5110 수열 합치기

이거두 그냥 슬라이싱으로 배열 끼워넣기 했다.. 이거두 pass됨 for test in range(1,int(input())+1): N, M = map(int, input().split()) arr = [float('inf')] cnt = 0 for _ in range(M): a = list(map(int, input().split())) for i in range(N*cnt+1): if a[0] < arr[i]: arr[i:i] = a break cnt += 1 print(f'#{test}',end=' ') print(*arr[-11:-1][::-1]) 요건 연결리스트 소스 class Node: # 초기화 메소드 def __init__(self, data): self.data = data self.li..

swexpertacademy 2021.08.24 0