분류 전체보기

알고리즘/알고리즘 문제풀이

2870번: 수학숙제 [C++]

수학숙제 다국어 한국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 6069 2025 1583 33.503% 문제 상근이는 수학시간에 딴 짓을 하다가 선생님께 걸렸다. 선생님은 상근이에게 이번 주말동안 반성하라며 엄청난 숙제를 내주었다. 선생님이 상근이에게 준 종이에는 숫자와 알파벳 소문자로 되어있는 글자가 N줄있다. 상근이는 여기서 숫자를 모두 찾은 뒤, 이 숫자를 비내림차순으로 정리해야한다. 숫자의 앞에 0이 있는 경우에는 정리하면서 생략할 수 있다. 글자를 살펴보다가 숫자가 나오는 경우에는, 가능한 가장 큰 숫자를 찾아야 한다. 즉, 모든 숫자의 앞과 뒤에 문자가 있거나, 줄의 시작 또는 끝이어야 한다. 예를 들어, 01a2b3456cde478에서 숫자를 찾으면 1, ..

알고리즘/알고리즘 문제풀이

4659번: 비밀번호 발음하기 [C++]

비밀번호 발음하기 다국어 한국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 5557 2686 2189 50.137% 문제 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtpzyo 같은 비밀번호를 무작위로 부여해 주기도 하지만, 사용자들은 이를 외우는데 어려움을 느끼고 심지어는 포스트잇에 적어 컴퓨터에 붙여놓는다. 가장 이상적인 해결법은 '발음이 가능한' 패스워드를 만드는 것으로 적당히 외우기 쉬우면서도 안전하게 계정을 지킬 수 있다. 회사 FnordCom은 그런 패스워드 생성기를 만들려고 계획중이다. 당신은 그 회사 품질 관리 부서의..

알고리즘/알고리즘 문제풀이

2910번: 빈도 정렬 [C++]

빈도 정렬 다국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 5648 2765 2180 49.121% 문제 위대한 해커 창영이는 모든 암호를 깨는 방법을 발견했다. 그 방법은 빈도를 조사하는 것이다. 창영이는 말할 수 없는 방법을 이용해서 현우가 강산이에게 보내는 메시지를 획득했다. 이 메시지는 숫자 N개로 이루어진 수열이고, 숫자는 모두 C보다 작거나 같다. 창영이는 이 숫자를 자주 등장하는 빈도순대로 정렬하려고 한다. 만약, 수열의 두 수 X와 Y가 있을 때, X가 Y보다 수열에서 많이 등장하는 경우에는 X가 Y보다 앞에 있어야 한다. 만약, 등장하는 횟수가 같다면, 먼저 나온 것이 앞에 있어야 한다. 이렇게 정렬하는 방법을 빈도 정렬이라고 한다. 수열이 주어졌을 때, 빈도 정..

보안공부/시스템 해킹

pwnable 3번: bof

wget 문제에서 2개의 파일을 다운로드받으라고 했다. vm환경에서 다운로드할 수 있는 방법은 wget을 이용하면 된다. wget [옵션]... [URL]... http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/wget 생물정보 전문위키, 인코덤 Wikipedia for Bioinformatics www.incodom.kr 버퍼 플로우(buffer overflow) 데이터가 지정된 크기의 공간보다 커서 해당 메모리 공간을 벗어 나는 경우 사용한다. 결론적으로 버퍼 공간의 크기보다 큰 데이터를 저장하게 해서 일어나는 오버플로우(Overflow)를 이용한 공격이다. 스택 오버플로우, 힙 오버플로우 출처 : https://cos..

보안공부/시스템 해킹

pwnable 2번: collision

MD5 hash collision(해시 충돌) 해시 충돌이란 어떤 해시 함수가 서로 다른 두 입력에 대해 동일한 출력 값을 나타내는 경우를 말한다. 보통 해시 함수는 다수의 데이터가 있을 때 이들을 구별하고 특정 데이터의 검색을 빠르게 하기 위해 사용되는데, 이 때문에 해시 충돌이 많이 일어나는 해시 함수일수록 그 질이 낮다고 평가된다. 출처: https://medium.com/shell-tharsis/hash-collision-5891d7dde54f Hash Collision Hash Collision에 대하여 medium.com 문제의 flag를 보면 col_pwn만 접근할 수 있다. col.c 파일을 보자 ./col passcode 1. passcode는 20바이트(160비트) -> md5는 128..

보안공부/시스템 해킹

pwnable 1번 : fd

시스템 해킹 1도 몰라서 해설이 구구절절할 수 있다. fd (file descripter) 리눅스는 모든 것을 파일로 취급한다. 파일을 지칭하는 번호이다. 기본 fd로는 표준 입력 0, 표준 출력 1, 표준 에러 2가 있고 3부터 파일 오픈 or 소켓 생성시 부여된다. 더 자세한 정보: https://code4human.tistory.com/123 파일 디스크립터(File Descriptor)란? 파일 디스크립터 (FD, File Descriptor)란, Unix OS에서 네트워크 소켓과 같은 파일이나 기타 입력/출력 리소스에 액세스하는 데 사용되는 추상표현이다. 즉, 시스템으로 부터 할당받은 파일이나 소켓을 code4human.tistory.com 환경: utm arm64 리눅스 22.04 1. ssh..

알고리즘/알고리즘 문제풀이

2828번 사과 담기 게임 [C++]

https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (Mn>>m>>j; s=0; //기본값 for(int i=0;i> temp; e = s+m; //s에 따라 조정 //2. 이동거리 구하기 if(s

Spring/스프링 핵심 원리

객체 지향 설계와 Spring

스프링 역사 EJB...코드가 너무 복잡해진다. => 로드 존슨, 유겐 휠러, 얀 카로프 : Spring EJB라는 겨울을 넘어 새로운 시작이라는 뜻 2003년 스프링 프레임워크 1.0 출시 2014년 스프링 부트 1.0 출시 => 설정 편리해짐 스프링 설계 스프링 프레임워크, 스프링 부트 + 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드 스프링 프레임워크 스프링 핵심원리 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원 Tomcat같은 웹서버 내장 스프링의 핵심 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 프로그래밍 추상화,캡슐화,상속,다형성 유연하고 변경이 용이 다형성 역할(인터페이스)과 구현(객체)으..

mint*
'분류 전체보기' 카테고리의 글 목록 (37 Page)