노션🔗에 작성했던 글을 옮긴 포스팅입니다. 노션이 더 보기 편합니다🤔 SonarQube가 뭐죠?SonarQube는 정적 코드 분석을 통해 버그, 코드 스멜, 보안 취약점 등을 자동으로 탐지하고 관리할 수 있게 해주는 툴이다.💡 정적 코드 분석(Static Code Analysis)이란?- 프로그램의 실제 실행 없이 코드를 분석하는 것.- 소스 코드 기반으로 진행되며, 미리 지정된 규칙(Rule) 셋을 통해 코드를 분석하기 때문에 빠르고 효율적이라는 장점이 있지만, 런타임이 실행되는 환경에서의 약점을 잡아내지 못한다는 단점이 존재한다.주요 기능버그 찾기: 잠재적 버그 찾기코드 스멜 감지: 지금은 문제가 없지만 나중에 문제가 될 수 있는 코드를 코드 스멜이라 부르고 그것을 찾아 내는 것보안 취약점 체크..
https://www.acmicpc.net/problem/16507코드import sysinput = sys.stdin.readliner, c, q = map(int, input().split())picture = [list(map(int, input().split())) for _ in range(r)]# 누적합 구하기acc = [[0]*(c+1) for _ in range(r+1)]for i in range(r): for j in range(c): acc[i+1][j+1] = acc[i][j+1] + acc[i+1][j] - acc[i][j] + picture[i][j]for _ in range(q): r1, c1, r2, c2 = map(int, input().split())..
웹 접근성의 개념과 핵심 원리웹 접근성이란?-모든 사용자가 특정 환경이나 신체적 장애에 상관없이 웹 사이트나 애플리케이션에서 제공하는 모든 정보에 동등하게 접근하고 이용할 수 있도록 보장해 주는 것이다.-장애인뿐만 아니라 고령자, 비장애인도 접근성의 대상이 된다.웹 접근성 핵심 원리사실 핵심 원리는 글마다 조금씩 다르게 서술하고 있는데, 네이버의 웹 접근성 관련 문서가 가장 간결하면서도 이해가 쉽게 정리되어 있다고 생각하여 갖고 왔다.1.인식의 용이성: 모든 콘텐츠는 사용자가 인식할 수 있어야 한다.2.운용의 용이성: 사용자 인터페이스 구성 요소는 조작 가능하고 네비게이션할 수 있어야 한다.3.이해의 용이성: 콘텐츠는 장애유무에 관계없이 이해할 수 있게 구성되어야 한다.4.견고성: 웹 콘텐츠는 미래의 기..
https://www.acmicpc.net/problem/2910코드from heapq import heappop, heappushimport sysinput = sys.stdin.readlinen, c = map(int, input().split())arr = list(map(int, input().split()))count_dict = dict()for i in range(n): if arr[i] not in count_dict: count_dict[arr[i]] = [i, 1] else: count_dict[arr[i]][1] += 1hq = []for k, v in count_dict.items(): heappush(hq, [-v[1], v[0], k])w..
https://www.acmicpc.net/problem/2941코드croatia_alphabet = set(["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="])input_str = input()n = len(input_str)answer = 0idx = 0while idx = n-1: break if idx 두 글자 이상의 알파벳은 집합에 따로 모아둔다.그리고 입력으로 주어진 문자열을 순회하며 1. 현재 인덱스부터 시작해서 2글자가 크로아티아 알파벳이라면 continue2. 현재 인덱스부터 시작해서 3글자가 크로아티아 알파벳인지 continue3. 둘 다 아니면 한 글자짜리 알파벳 이렇게 while문을 도는 횟수를 구하면 알파벳의 개수를 구할 ..
https://www.acmicpc.net/problem/16932코드from collections import dequeimport sysinput = sys.stdin.readlinen, m = map(int, input().split())matrix = [list(map(int, input().split())) for _ in range(n)]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def bfs(x, y, group_num): res = 1 q = deque([(x, y)]) matrix[x][y] = group_num while q: now_x, now_y = q.popleft() for i in range(4): ..