[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

[백준][Python] 2026 소풍

https://www.acmicpc.net/problem/2026 2026번: 소풍 만약 K명의 친구 관계인 학생들이 존재하지 않는다면 -1을 출력한다. 그 외의 경우에는, K개의 줄에 학생들의 번호를 증가하는 순서로 한 줄에 한 개씩 출력한다. 여러 경우가 존재한다면 첫 번째 www.acmicpc.net K명 모두가 친구여야 통과하는 dfs를 짜주면 된다. import sys input = sys.stdin.readline def dfs(v,arr): if len(arr)==K: for num in arr: print(num) exit() for i in range(v+1,N+1): if not visited[i]: for num in arr: if num not in graph[i]: break el..

백준 2021.09.14 0

[백준][Python] 3783 세제곱근

부동소수점에 대한 이해 : https://thrillfighter.tistory.com/349 Python의 부동소수점 보정 decimal 모듈 : https://docs.python.org/ko/3/library/decimal.html import decimal # 천자리까지 정확도 주기 decimal.getcontext().prec = 1000 N = int(input()) for _ in range(N): # Decimal 객체를 만듬.(float, int같은) # 자릿수 10자리까지 정확하게 입력해줌. d = decimal.Decimal(input().rstrip() + '.0000000000') pow = decimal.Decimal('1') / decimal.Decimal('3') d = de..

백준 2021.08.23 0

[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][삼성 2021 하반기 코딩테스트] 23288 주사위 굴리기2

주사위 굴리기 1이랑 비슷합니다. 주사위 좌표이동, 방향에 따른 회전, 위치에 따른 좌표 값 * cnt 만큼 최종합에 더해줌. 주사위 밑면과 지도값 비교에 따라 방향성 수정 위의 4가지 로직으로 이루어져 있습니다. 사실 새로운 지도 배열을 만든 후 거기에 미리 위치마다 더해야 하는 값을 미리 연산해 두면 같은 위치마다 bfs를 돌지 않아도 되지만 통과됐으니 생략.. 아래가 직관적인 로직이라고 생각합니다. import sys input = sys.stdin.readline from collections import deque def rotate_dice(d): if d == 0: dice['top'], dice['left'], dice['bottom'], dice['right'] = dice['left']..

백준 2021.10.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를 이용해..

[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..

[백준][Python][2021 하반기 삼성 코딩테스트] 23291 어항정리

좀 무식하게 푼 느낌이 없잖아 있습니다. 달팽이 거꾸로 파고들면서 그렸습니다. 빈칸은 -1로 표기 빈칸 없을때와 빈칸이 있을 떄 1열로 펼치는 순서가 다릅니다. import sys input = sys.stdin.readline from collections import deque # 달팽이를 만든다. 시작좌표는 def make_snail(): row, col = n, n if n**2 - N >= n: col -= 1 matrix = [[0] * col for _ in range(row)] q = deque() q.append((row - 1, col - 1, 0)) blank_cnt = row * col - N start = N - 1 while q: x, y, d = q.popleft() matri..

[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

[자료구조] 파이썬으로 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..

[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

[객체지향] OOP와 객체지향 패턴, Grasp 패턴 정리

프로그래밍 문제를 분석해 문제를 해결하는 방법과 과정. (Problem Solving) 조직화하는 것을 '설계'라 함. 구조적 프로그래밍에서의 분할기준은 프로시저(절차, 함수). 절차지향과 차이점은 캡슐화, 다형성, 상속 지원, 데이터 접근 제한을 걸 수 있는지 여부. 효율적으로 하기 위한 방법론 중 하나가 객체지향. 알고리즘은 수학적인 풀이. 하지만 이로 모든 문제를 해결 할 수 없음. 객체지향은 어떤 문제를 잘게 나눠서 각각의 능동적인 주체로 만들기 위함. 잘게 나눈 객체들을 조합해 큰 문제를 해결하는 Bottom-Up 지향 큰 문제를 10개로 나눠 할당하고 각 주체가 자기가 맡은 책임에 대해 해결을 위해 '자율적'으로 노력하고 '협업'하기 위한 패러다임. 즉 객체지향에서 우리가 배워야 할 것은 '협..

[JS] 검색어 자동완성 구현시 change와 keyup event를 같이 쓰는 이유

3. events const searchInput = document.querySelector(".search"); const suggestions = document.querySelector(".suggestions"); searchInput.addEventListener("change", displayMatches); searchInput.addEventListener("keyup", displayMatches); search클래스를 가진 input box가 변하거나 key가 눌릴때마다 displayMatches를 불러옵니다. keyup은 키보드를 이용한 입력만 감지함. (마우스 클릭으로 붙혀넣기하거나 자동완성 단어를 클릭해서 입력되는 이벤트 인식x) change는 외부를 눌렀을때만 인지함. 키보드 ..

JavaScript 2021.10.25 0

[백준][Python] 2253 점프

등차수열로 속도가 증가했을 때 k번째 돌에서 a만큼의 최대 속도를 가질 수 있고 이는 k = a(a+1)/2 를 만족한다. 정리하면 a = sqrt(2 * k + (1/4)) - 1/2 이기 때문에 i번 위치에서 int(sqrt(2 * i)) + 1까지 검사하면 가능한 모든 속도에서의 값을 조사할 수 있다. import sys input = sys.stdin.readline N, M = map(int, input().split()) dp = [[float('inf')] * (int((2 * N)** 0.5) + 2) for _ in range(N + 1)] dp[1][0] = 0 stones = set([int(input()) for _ in range(M)]) for i in range(2, N + 1..

[백준][Python] 2374 같은 수로 만들기

풀이 1. 극소점부터 큰값이 나올때마다 그만큼 채워주면서 연산. import sys input = sys.stdin.readline n = int(input()) cnt = 0 stack = [int(input())] max_num = stack[-1] for _ in range(n - 1): num = int(input()) if stack[-1] < num: cnt += num - stack[-1] max_num = max(max_num, num) stack.pop() stack.append(num) cnt += max_num * len(stack) - sum(stack) print(cnt) 풀이2. 분할정복으로 max_idx를 pivot으로 좌우 분할 해 각 구간의 연산값을 더해주며 최상단까지 올라..

[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] 1242 암호코드스캔

암호문에서 16진수로 표현된 바코드를 찾아 2진수로 변환, decode 규칙에 따라 해석한 10진수가 암호의 조건에 맞으면 암호값을 산출하는 문제입니다. input값을 정제하는 것부터 매우 어려웠습니다. 결국 핵심은 2진수 값을 구하면 0,1,0,1의 비율을 찾아 매칭시키는 것 입니다. 웃긴건 112자리 안에 56자리 암호가 숨어있을수도 있으니 조심하시면 됩니다. import sys sys.stdin = open('input.txt') # 알파뱃이면 10 + 그 번호 즉 16진수를 10진수로 치환하는 함수. def get_val(ch): val = (ord(ch) - ord('A')) + 10 if ord(ch) > ord('9') else ord(ch) - ord('0') return val # 남의 ..

[Python] 메소드 별 입출력 속도 비교

파이썬 입출력 속도 비교. 입력속도 1 PyPy int(sys.stdin.readline()) 0.9229 2 PyPy map(int,os.read(0, 100000000).split('\n')) 1.1169 3 PyPy3 map(int,os.read(0, 100000000).decode('utf-8').split('\n')) 1.5408 4 PyPy int(raw_input()) 1.925 5 Python 3 map(int,os.read(0, 100000000).decode('utf-8').split('\n')) 4.4033 6 Python 3 int(sys.stdin.readline()) 4.4394 7 PyPy3 int(sys.stdin.readline()) 6.6291 8 Python 3 int(..

PYTHON 기능연습 2021.09.06 0

[백준][Python] 19585 전설 : 다음에 해결

자꾸 시간초과나는데 왜 나는지 모루게따.. 알려주실분 댓글 달아주시면 감사하겠슴니다(꾸벅) idx1: color가 반환된 index idx2: nick_name이 반환된 역방향 index : n-1-index import sys input = sys.stdin.readline from collections import defaultdict class Node: def __init__(self): self.child = defaultdict(Node) self.word = False class Trie: def __init__(self): self.root = Node() def insert(self,word): node = self.root for char in word: node = node.child..

[백준][Python] 14945 불장난

dp[층수][둘사이 거리]의 경우의 수로 계산. 거리가 그대로일 경우 둘(아래아래, 대각,대각) 거리가 줄경우 하나(대각아래) 거리가 늘경우 하나(아래대각) 거리가 0인경우는 그냥 배제 import sys input = sys.stdin.readline n = int(input()) dp = [[0]*(n+1) for _ in range(n+1)] dp[2][1] = 2 for i in range(3,n+1): for j in range(1,i): dp[i][j] = (dp[i-1][j]*2 + dp[i-1][j-1] + dp[i-1][j+1])%10007 sum_n = 0 for i in range(1,n): sum_n += dp[n][i] print(sum_n%10007)

백준 2021.09.01 0

[OS] CPU Scheduling : 프로세스를 .CPU에 할당하는 방법들

CPU Scheduling 스케줄링 실행준비가 된 프로세스 중에서 하나를 선택해 CPU를 할당 하는 것. 결국 CPU를 잘 사용하기 위해 프로세스를 잘 배정하기 위함. 조건 : 오버헤드는 낮고, 사용률은 높고, 기아 현상은 낮을때. 목표 Batch System : 가능하면 많은 일을 수행한다. 시간(time)보다 처리량(throughout)이 중요하다. Interactive System : 빠른 응답 시간, 적은 대기 시간 Real-time System : 기한(deadline) 맞추기 선점 / 비선점 스케줄링 선점(preemptive) : OS가 CPU의 사용권을 선점 할 수 있는 경우, 강제 회수하는 경우 비선점(nonpreemptive) : 프로세스 종료 or I/O 등의 이벤트가 있을 때까지 실행..

운영체제 2021.08.30 0

[백준][Python] 10158 개미

좌표평면에서 기준선 0, w,h 축을 기준으로 범위 안에 들어올때까지 대칭시키는 방법. import sys input = sys.stdin.readline w, h = map(int, input().split()) p, q = map(int, input().split()) t = int(input()) init_x = p + t init_y = q + t if not (init_x//w)&1: x = (-2*w*((init_x//w)//2) + init_x) else: x = 2*w - (-2*w*((init_x//w)//2) + init_x) if not (init_y//h)&1: y = (-2*h*((init_y//h)//2) + init_y) else: y = 2*h - (-2*h*((init_y/..

백준 2021.08.28 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

[알고리즘] SCC (Strongly Connected Component) 강한 연결 요소

강한 연결 요소(SCC) 무향 그래프에서 절단점이 존재하지 않는 그래프를 우리는 Biconnected component라고 부릅니다. 절단점이 없다면 그래프 상의 어떤 점을 삭제하더라도 임의의 두 정점은 서로로 가는 경로가 존재하게 됩니다. Biconnected Component Undirected Graph에서 절단점이 존재하지 않는 그래프 Strongly Connected Component 만약 그래프의 임의의 한 정점에 대해 다른 모든 정점으로 가는 경로가 존재한다면 그 그래프를 SCC(Strongly Connected Component)라고 한다. SCC(Strongly Connected Component)특징 같은 SCC내에서 뽑은 임의의 U, V 점에서 U->V 혹은 V->U의 경로(직/간접적..

[백준][Python] 14925 목장 건설하기

가장 큰 정사각형 만들기와 동일하다. 장애물이 나오면 최소 길이가 0으로 끊기고 다시 1부터 하나씩 늘려가는방식. import sys input = sys.stdin.readline # 가장 큰 정사각형 문제와 같은 문제. 위 좌, 대각 안쪽 중 가장 변의 길이가 짧은 변에 하나를 추가시켜주는 방식이며 # 장애물을 만나면 다시 0부터 시작한다. M, N = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(M)] dp_length = [[0 for _ in range(N+1)] for _ in range(M+1)] max_length = 0 for i in range(1,M+1): for j in range..

백준 2021.08.18 0

[JavaScript] JS의 비동기처리.

JS의 비동기 처리방식 동기 / 비동기 처리 동기(Syncronous)는 먼저 시작한 작업이 끝날 때 까지 다른 작업을 할 수 없다. 비동기(Asyncronous)는 동시에 여러가지 작업을 처리하며 기다리는 과정에서 다른 함수 호출이 가능하다. 비동기 처리의 예 다음과 같은 작업들은 주로 비동기적으로 처리하게 된다. Ajax Web API요청 : 화면을 렌더링해야하는데 서버쪽에서 응답을 해주기까지 마냥 대기할 수 없다. 비동기적으로 처리한다. Ajax function getData() { let data; $.ajax({ type: 'post', url: 'https://devlibrary00108.tistory.com/', data: { seungjoo:zzang, }, s..

JavaScript 2021.08.17 0

[백준][Python] 16988 바둑2

문제 이름만 봐도 바킹독님이 만드신 문제.. 구현문제로 자주나오는 유형. 삼성 기출의 연구소 같은 느낌으로 막아놓을 벽을 몇개 정하고 BFS로 막힌 영역을 세는 느낌. 연구소 시리즈를 풀며 연습할 필요성을 느꼈다. 벽을 고르는 조합도 comb를 쓰지않고 함수를 구현하는 방법도 고려할 수 있다. import sys input = sys.stdin.readline from collections import deque from itertools import combinations def BFS(x,y,visited): queue = deque() visited[x][y] = True queue.append([x,y]) kill_ai_stone = 1 flag = 0 while queue: x,y = queue..

백준 2021.08.16 0

[알고리즘] 문자열 매칭 3종세트 KMP, 보이어무어, 라빈카프

고지식한 매칭 text = 'ABABCA' for i in range(len(text)-len(target)): for j in range(len(target)): if text[i+j] == target[j]: j+=1 else: break print('Identified') break KMP 알고리즘.(시작위치 후보를 잡아놓자) 불일치가 발생한 텍스트 스트링의 앞 부분에 어떤 문자가 있는지를 미리 알고 있으므로, 불일치가 발생한 앞 부분에 대하여 다시 비교하지 않고 매칭을 수행. 패턴을 전처리하여 배열 next[M]을 구해서 잘못된 시작을 최소화함. next[M]: 불일치가 발생했을 경우 이동할 다음 위치 패턴내에서 반복하는 구간이 있을것이라는 전제.. 하지만 없다면 무의미. 하지만 패턴이 길다는 전..

[백준][Python] 17845 수강과목

전형적인 0-1 냅색. dp로 풀었습니다. import sys input = sys.stdin.readline N,K = map(int,input().split()) dp =[[0]*(N+1) for _ in range(K+1)] times=[] grades=[] for _ in range(K): I,T = map(int,input().split()) times.append(T) grades.append(I) for class_no in range(1,K+1): for now_time in range(1,N+1): if times[class_no-1] > now_time: dp[class_no][now_time] = dp[class_no-1][now_time] else: # 지금시간에서 추가하는 과목의 ..

백준 2021.08.02 0

[백준][Python] 1497기타콘서트

코드는 한방에 짰는데 1갯수 확인하는 코드에서 노래수만큼이 아니라 기타수만큼 반복문돌려서 7번 틀렸다.. import sys input = sys.stdin.readline from itertools import combinations # 기타 플레이 리스트 이진수로 바꿔서 set에 저장. N,M = map(int,input().split()) guitars = set() for _ in range(N): name,pos = input().split() bin_change='' for chr in pos: if chr=="Y": bin_change += '1' else: bin_change += '0' guitars.add(int(bin_change,2)) # 셋에서 0 제거하고 비었으면 -1출력후 종료..

백준 2021.07.31 0

[Web] 웹 접근성과 웹 표준, 웹 개방성

접근성? 접근성의 의미와 웹 개발에 접근성을 적용하는 방법을 학습합니다. 모든 사용자가 웹사이트에 액세스할 수 있고 유용하게 활용할 수 있도록 하는 방법을 학습합니다. 개발에 미치는 영향을 최소화하면서 기본적인 접근성을 포함하는 방법을 학습합니다. 사용 가능한 HTML 기능과 이런 기능을 사용하여 접근성을 개선하는 방법을 학습합니다. 세련된 접근성 환경을 만들기 위한 고급 접근성 기법에 대해 학습합니다. 접근성을 한마디로 설명하긴 어렵지만 구현하기 어렵게 만들 필요없음을 알면 된다. 원활한 엑세스, 강력한 인터페이스. 장애가 있는 사용자뿐 아니라 모든 사용자가 더욱 즐거운 마음으로 간편하게 사용할 수 있는 인터페이스의 제작. 접근성이란? 어떤 사이트가 접근가능하거나 엑세스 가능하다고 할때 그 사이트의 콘..

webDeveloper 2021.07.28 1

[백준][Python] 2613 숫자구슬

처음에 조합으로짰다가 최대한 줄여도 메모리 시간초과나서 고생하다 결국 c++코드보고 이분탐색풀이로 다시 짰다. 이분탐색 안그래도 공부하려고 생각중이었는데 오늘 기본문제부터 조금씩 풀어봐야 할듯 싶다. 위는 조합풀이, 아래는 이분탐색 풀이. import sys input= sys.stdin.readline from itertools import combinations # N-1개의 사이에서 M-1개의 작대기를 뽑는 조합. # 각 max값중 최댓값과 slice한 작대기 위치 패킹해 저장. # 저장된 max값 정렬 후 맨앞에있는 배열 출력. N,M = map(int,input().split()) ball_lists = list(map(int,input().split())) maxes = float('inf')..

백준 2021.07.26 0

[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