분류 전체보기 228

[Pytorch] Ubuntu 20.04에서 Pytorch 사용을 위한 환경 세팅

Ubuntu 20.04에서 GPU 모드로 Pytorch를 이용하기 위해 Nvidia driver와 Cuda, Pytorch 등 필요한 프로그램들을 설치하는 방법을 알아보겠습니다. - Nvidia Driver 설치 sudo lspci -v | less sudo ubuntu-drivers devices 위의 명령어들로 자신의 환경에 맞는 Nvidia Driver를 검색할 수 있습니다. 제가 사용하고 있는 GPU는 RTX 3090이고, nvidia-driver-460가 recommanded되어 있네요 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt-get install nvidia-driver-460 sudo reboot 위의..

[BOJ] 16174 - 점프왕 쩰리 (Large)

개인적인 풀이일 뿐, 최적의 정답이 아님을 알려드립니다. 문제 www.acmicpc.net/problem/16174 16174번: 점프왕 쩰리 (Large) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 난이도: 골드 5 사용언어: JAVA 풀이 이 문제는 BFS를 사용하여 간단하게 해결할 수 있는 문제입니다. BFS를 사용하여 각각의 칸 마다 해당 숫자 만큼 점프를 해주되, 테이블을 벗어나는 범위만 체크해주면 쉽게 해결 할 수 있습니다. 저는 처음에 이동 방향이 오른쪽과 아래쪽 밖에 없기 때문에 굳이 방문 체크를 하지 않고 풀었었지만, 이렇게 풀면 메..

[BOJ] 1261 - 알고스팟

개인적인 풀이일 뿐, 최적의 정답이 아님을 알려드립니다. 문제 www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 난이도: 골드 4 사용언어: JAVA 풀이 이 문제는 BFS와 우선순위 큐를 이용해 해결할 수 있습니다. BFS를 이용해 경로를 찾되, 벽을 최소로 부수는 경우를 찾아야 하기 때문에 우선순위 큐를 통해 현 시점에서 가장 적게 벽을 부순 경로부터 체크를 해주면 됩니다. 그리고 이미 검사를 한 구역이더라도, 현재의 경로가 벽을 더 ..

[BOJ] 1584 - 게임

개인적인 풀이일 뿐, 최적의 정답이 아님을 알려드립니다. 문제 www.acmicpc.net/problem/1584 1584번: 게임 첫째 줄에 위험한 구역의 수 N이 주어진다. 다음 줄부터 N개의 줄에는 X1 Y1 X2 Y2와 같은 형식으로 위험한 구역의 정보가 주어진다. (X1, Y1)은 위험한 구역의 한 모서리이고, (X2, Y2)는 위험한 구역의 www.acmicpc.net 난이도: 골드 5 사용언어: JAVA 풀이 기본적으로 bfs를 이용하여 문제를 해결할 수 있습니다. 하지만 최대한 위험한 지역을 통과하지 않고 목적지에 도착하는 것이 목적이기 때문에 한 번 검사한 지역도 생명의 개수에 따라 중복해서 검사해야 하는 문제가 생깁니다. 다시 말해 이미 검사한 칸이라도 현재 도착한 경로가 원래 지나간 ..

[BOJ] 20159 - 동작 그만. 밑장 빼기냐?

개인적인 풀이일 뿐, 최적의 정답이 아님을 알려드립니다. 문제 www.acmicpc.net/problem/20159 20159번: 동작 그만. 밑장 빼기냐? 카드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 단, N은 짝수이다. 둘째 줄에 카드의 윗장부터 밑장까지 카드의 값 X (1 ≤ X ≤ 10,000)이 정수로 주어진다. www.acmicpc.net 난이도: 골드 5 사용언어: JAVA 풀이 이 문제는 다이나믹 프로그래밍을 이용하여 해결할 수 있습니다. 우선 밑장을 한 번 빼고 나면, 해당 카드로부터 앞으로 정훈이가 받았어야 할 카드와 상대방이 받았어야 할 카드가 뒤바뀌게 됩니다. 문제를 해결하기 위해 두 개의 배열을 이용합니다. 하나는 해당 카드까지 정훈이 또는 상대방이 받은 카드의 점..

[정처기 실기] 11장 - 제품 소프트웨어 패키징

소프트웨어 패키징 소프트웨어 패키징: 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것. 개발자가 아닌 사용자 중심으로 진행 소스코드는 모듈화 하여 패키징 패키징 작업 순서: 기능 식별 - 모듈화 - 빌드 - 환경 분석 - 패키징 적용 - 패키징 개선 - 배포 릴리즈 노트 작성 릴리즈 노트: 릴리즈 정보를 고객과 공유하기 위한 문서 정확하고 완전한 정보를 기반하여 개발팀에서 직접 현재 시제로 작성 변경 또는 개선된 항목에 대한 이력 정보들도 작성되어야 함 릴리즈 노트 작성 순서: 모듈 식별 - 릴리즈 정보 확인 - 개요 작성 - 영향도 체크 - 릴리즈 노트 작성 - 추가 개선 디지털 저작권 관리(DRM) 클리어링 하우스: 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수..

정보처리기사 2021.04.14

[정처기 실기] 10장 - 응용 SW 기초 기술 활용 (2)

데이터베이스 개념 데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임이다. 통합 데이터(Integrated Data): 중복이 최소화된 데이터의 모임 저장 데이터(Stored Data): 저장 매체에 저장된 데이터 운영 데이터(Operational Data): 업무를 수행하는 데 존재 가치가 있는 필요한 데이터 공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터 DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어. --> 정의 기능, 조작 기능, 제어 기능 계층형 DBMS: 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 DBMS 망형 DBMS: 그래프를 ..

정보처리기사 2021.04.14

[정처기 실기] 10장 - 응용 SW 기초 기술 활용 (1)

운영체제의 개념 운영체제: 컴퓨터 시스템 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임. 운영체제의 성능 평가 기준 처리 능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양 반환 시간(Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간 사용 가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용한 정도 신뢰도(Reliability): 시스템이 주어진 문제를 정확하게 해결하는 정도 운영체제의 기능 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원을 관리 자원을 효율적으로 관리하기 위해 자원의 스케쥴링 기능을 제공 사용자와 시스템 간의..

정보처리기사 2021.04.14

[정처기 실기] 9장 - 소프트웨어 개발 보안 구축

소프트웨어 개발 보안 소프트웨어 개발 보안은 데이터의 기밀성, 무결성, 가용성을 유지하는 것을 목표로 한다. 개인정보 보호법: 개인정보의 처리 및 보호에 관한 사항을 정함으로써 개인의 자유와 권리를 보호한다. Secure SDLC Secure SDLC는 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미한다. SDLC: 소프트웨어 개발 생명주기 (Software Development Life Cycle) 보안 요소: 소프트웨어 개발에 있어 충족시켜야 할 요소 및 요건을 의미 --> 기밀성, 무결성, 가용성, 인증, 부인 방지 시큐어 코딩 (Secure Coding): 소프트웨어의 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고..

정보처리기사 2021.04.14

[정처기 실기] 7장 - 애플리케이션 테스트 관리

애플리케이션 테스트 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차. Validation (확인): 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 Verification (검증): 개발된 소프트웨어가 기능을 정확히 수행하는지 애플리케이션 테스트의 기본원리 완벽한 소프트웨어 테스팅은 불가능 결함 집중: 결함은 보통 특정 모듈에 집중. 파레토 법칙 (애플리케이션의 20퍼센트에서 80퍼센트의 결함이 발견). 살충제 패러독스 (Pesticide Paradox): 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않음. (내성) 따라서 테스트 케이스를 지속적으로 보완 및 개선해주어야 함. 정황(Context) 의존: 정황에 따라 테스트를 다르게 수행해야 함 오류-부재의 궤변 (Absence..

정보처리기사 2021.04.14