https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net 시간제한이 1초이다 브루트 포스로 순회해서 단순하게 풀면 시간초과가 난다 (!) 최근에 문제를 풀면서 깨달은 것인데, 선형 자료구조 (ex. list) 에서 시간 복잡도를 줄이기 위해서 유리하게 사용해볼 방법 중 하나가 바로 투포인터 알고리즘이다 장점이라하면 포인터로 찍으면서 조건에 맞지 않은 후보들을 제쳐버려서 선형 자료구조를 보다 빨리 순회할..
분류 전체보기
화이트박스 테스트 화이트 박스 테스트는 모듈의 원시 코드를 오픈 시킨 상태에서 원시코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법 1) 기초 경로 검사 - 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법 2) 제어 구조 검사 - 조건 검사 / 루프 검사 / 데이터 흐름 검사 블랙 박스 테스트 블랙 박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트 - 동치 분할 검사 : 프로그램의 입력 조건에 타당한 입력자료와 타당하지 않은 입력 자료 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법 - 경계값 분석 : 입력 조건의 중간값보다 경계값에서..
https://leetcode.com/problems/3sum/ 3Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 시간초과난 브루트 포스 풀이 ㅋㅋ -10^5 0 and nums[i] == nums[i-1] 조건문을 각각의 for문에 넣어주었더니 통과했다 class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: result = [] n = len(nums) nums.sort()..
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 삼성기출에 있는 문제 ! 유형 : 구현 조건이 여러개가 있는데 하나씩 문제를 잘! 읽으면서 구현해야 될듯 처음에 놓쳐서 삽질한게 몇개 있다 - 1번행과 n번행이 이어져있는 걸 까먹고 구름 이동할때 배열 인덱스 초과하면 어떡하지 ? 혼자 고민했다 - 그리고 대각선 거리 1에 물이 있는 바구니 수를 세서 바구니 수 만큼 물을 더해주는 것 자잘한 부분에서 실수할 수 있는 것 같지만 다른 삼성 기..
https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net stack 자료구조형을 사용해서 풀었다 1. 숫자면 stack에 쌓는다 단 여기서는 숫자대신 ABC... 알파벳 대문자로 표기하고 있는데 이를 ord() 함수를 사용해서 아스키코드 값을 출력해준다 A가 아스키코드로 65이므로 이를 뺀 값으로 피연산자들을 모은 리스트의 인덱스로 사용했다 ex) num[ord('A') - 65] 2. 연산자면 pop 두번해서 피연산자들 꺼내고 연산한다 3...
서비스 거부 공격 Dos:Denial of Service 1) Ping of Death Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법 2) SMURFING 스머핑 스머핑은 IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만다는 공격 방법 3) SYN Flooding TCP 는 신뢰성 있는 전송을 위해 3-way handshake 를 거친 후에 데이터를 전송하게 되는데, SYN Flooding은 공격자가 가상의 클라이언트로 위장하여 3-way-handshaking 과정을 의도적으로 중단시켜서 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를..
Secure SDLC (Software Development Life Cycle) SDLC에 보안 강화를 위한 프로세스를 포함한 것 방법론 1) CLASP : SDLC 초기 단계에서 보안을 강화하기 위해 개발된 방법론 2) SDL : 마이크로소프트 사에서 안전한 개발을 위해 SDLC를 개선한 방법론 3) Seven touchpoints : 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론 소프트웨어 개발 보안 요소 기밀성 : 시스템 내의 정보와 자원은 오직 인가된 사용자만 접근할 수 있음 무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 가용성 : 인가된 사용자는 시스템 내의 정보와 자원을 언제든지 사용할 수 있음 SQL 삽입 injection 웹 응용 프로그램에 SQL을 삽입하여 ..
https://www.acmicpc.net/problem/25591 25591번: 푸앙이와 종윤이 베다수학 곱셈법을 쓰는 과정에서 구하는 $a$, $b$, $c$, $d$, $q$, $r$을 첫 줄에 공백으로 구분해서 출력한다. 둘째 줄에 곱셈 결과의 앞의 두 자릿수, 뒤의 두 자릿수를 공백으로 구분해서 출력한다. www.acmicpc.net 어제 CPC(중앙대 프로그래밍 대회) 열린대서 구경가봤다.. 대회 첨 참여해보는데 실시간으로 랭킹 두두두두 올라가고 ㅋㅋ 신기하고 재밌는 경험이었다 사실 하나 풀고 릿코드 감 문제는 구현문제이고 딱히 어려운건 아닌데 문제를 읽고 빨리 이해하는 능력이 중요한것 같다.. 코테나 대회에서는 ! # a n, m = map(int, input().split()) a = 10..