목록전체 글 (75)
베지밀
11723 집합 문제 문제 풀이의 관건set를 사용해서 집합 연산을 수행all, empty와 같이 x값이 주어지지 않는 경우 구분임시로 입력값을 저장하고, 입력값의 개수를 구분하자 정답import sysM = int(sys.stdin.readline())S = set()for _ in range(M): tmp = sys.stdin.readline().split() if len(tmp) == 1: if tmp[0] == 'all': S = set(range(1, 21)) else: S = set() else: cmd = tmp[0] x = int(tmp[1]) if cmd == 'add': S.add(x) if cmd == 'remo..
사건의 발단 우분투의 파일을 로컬 호스트(윈도우)로 옮기기 위해 공유폴더를 설정하고자 했다. 1. VMware Tools 설치sudo apt updatesudo apt install open-vm-tools open-vm-tools-desktop설치 후 시스템을 재부팅해야 함sudo reboot 2. VMware에서 공유 폴더 설정VMware에서 VM>Settings>Options 탭에서 Shared Folders를 Always enabled로 설정한다.Add에서 호스트 시스템의 공유 폴더를 추가해준다.나는 문서에 VM>Ubuntu>shared folder로 설정했다. 3. 공유 폴더 확인 및 접근ls /mnt/hgfs# 만약 접근 권한 문제가 생길 경우sudo ls /mnt/hgfs 4. 자동 마운..
소프트웨어가 복잡해지고 다양한 모듈을 사용함에 따라, 제로데이 취약점을 공개할 때 특정 기업의 소프트웨어 제품이 어떤 구성 요소로 이루어져 있는지를 효율적으로 점검할 수 있는 방법이 필요했다.또한 Log4j, HeartBleed, npm 등의 보안 문제가 발생함에 따라, 오픈소스 보안 강화에 대한 필요성이 대두되었다.이와 같이 오픈소스 소프트웨어 공급망 보호를 위해 도입된 SBOM에 대해서 알아보자. SBOM이란?제조업의 BOM(Bill of Materials)에서 파생된 개념으로, 소프트웨어 구성 요소에 대한 메타 정보를 제공하는 소프트웨어 자재 명세서로, 소프트웨어에 포함된 모든 구성 요소, 라이브러리, 모듈 및 버전, 라이선스, 출처 등의 정보를 포함한다. 소프트웨어의 구성 컴포넌트에 관한 메타정..
1152 단어의 개수 정답S = input().split()print(len(S)) 실패한 시도S = input().strip()cnt = S.count(' ')print(cnt+1) 처음엔 공백의 개수를 세면 된다고 생각해서 count함수를 사용하여 코드를 작성했다.심지어 문자열 앞 뒤 공백을 제거하면서 완벽한 코드라고 생각했다..! 그러나 계속해서 틀리길래 gpt를 통해 질의한 결과..나의 코드는 빈 문자열도 1로 계산해버림따라서 strip과 count를 사용하는 것이 아닌, split으로 문자열을 쪼개서 리스트로 변환하도록 수정했다.
문제는 다음과 같다. 나는 다음 두 가지 방법으로 풀었다.1. sort()로 정렬해서 첫번째와 마지막 인덱스를 찾는 방법2. min(), max() 함수를 이용하는 방법 #10818#sort()N = int(input())num_list = list(map(int, input().split()))num_list.sort()print(num_list[0], end=' ')print(num_list[N-1])#10818#min(), max()N = int(input())num_list = list(map(int, input().split()))print(min(num_list), end=' ')print(max(num_list))참고로 print(min(num_list), max(num_list))가 더 ..
25314 코딩은 체육과목입니다 풀이N = int(input())for i in range(N//4): print("long ", end="")print("int") print의 end옵션을 사용해서 long 이후에 줄바꿈이 없도록 했다. 처음에 /로 구현했을 때 float 오류가 났다.나중에 알아보니 /와 //의 자료형 차이였다./는 float형 반환//는 int형 반환
IT계열 전공이지만 개발자가 아니라서 코딩을 제대로 해본 적 없는 취준생의.. 취준 성공을 위한 코테 공부 시작 - Python, C를 수강한 적은 있음- 알고리즘 공부해본 적 없음 & 교양 수준의 코딩 지식 이 영상 보고 시작함https://youtu.be/ukkLCl9yBvE?si=dYFjKdwThMHBb04u 1. 코드업 파이썬 기초 100제https://codeup.kr/problemsetsol.php?psid=33 문제집 / Python 기초 100제 codeup.kr 혹은 백준 단계별로 풀어보기 6단계까지https://www.acmicpc.net/step 2. 백준 알고리즘 문제 풀기가이드 : 그리디 알고리즘 - 탐색(완전탐색, BFS, DFS) 만 잘 갖춰도 코테에서 떨어질 일 ..
2가 더 쉬움 Server-client 2 IDA로 서버 코드를 열어보자 23번째 줄에서 연결이 수립되고, sub_401140 함수로 연결된다. (i는 아마도 소켓일 것이다)해당 부분이 문제를 푸는 포인트인 것 같아서 진입해본다. sub_401140 함수아까 cmd창에서 본 문자열들이다.사용자로부터 번호를 receive하고 input에 저장한다. strncmp로 입력값을 비교해서 어떤 역할을 수행하는데, 7777이 보인다. input 입력값에서 세미콜론을 찾고, 해당 위치 포인터를 v2에 반환한다.그리고 ; 이후의 값부터 sub_401000함수로 넘겨준다. sub_401000 함수v2+1부터의 값은 Command라는 매개변수로 들어왔다.buf라는 버퍼를 7777~ 문자열로 붙여놓고, 이후는 0으로 초기화..
분석툴 - x32dbg / IDA 처음 fe를 실행시키면 바탕화면에 아이유들이 다 사라져있다. (새로운 파일로 덮어씌워졌다) main 함수 12번째 줄 함수 (get_desktop_path)해당 함수의 내용SHGetSpecialFolderPathA라는 API에 \x10를 인자로 주면 Desktop의 경로를 받아온다.SHGetSpecialFolderPathA : 윈도우의 특정 경로를 가져오는 함수참고 : https://2ry53.tistory.com/entry/CSIDL의-값과-그-사용-방법Desktop 경로를 잘 가져왔으면 1, 아니면 0 FileName = input(=Desktop 주소) + \\*.* 을 이어붙여서 버퍼에 쓰고바탕화면에서 확장자가 존재하는 모든 파일을 가져온 후문자열 끝에서 .을 찾..
분석툴 - IDA 현재 실행중인 파일 경로 Filename에 받아온다.Filename = C:\Users\anon\Desktop\kisia_samples\4_ida_training\ida_training\training1_hm.exemal_deu라는 경로는 filename에 없기 때문에 if문을 지나서 밖의 명령이 실행됨GetTempPathA : 임시폴더의 경로를 Buffer에 가져옴. Buffer = C:\Users\anon\AppData\Local\TempPathAppendA : Buffer의 경로에 ‘mal_edu’라는 값을 더한다. Buffer = C:\Users\anon\AppData\Local\Temp\mal_eduCreateDirectoryA : Buffer 문자열에 해당하는 경로..