본문 바로가기
반응형

IT 이야기101

같은 데이터 빠르게 찾기 JAVA / C++ / 파이썬 Hash Map 자료구조는 key를 해싱하여 저장하고 빠르게 탐색합니다. 시간복잡도는 O(1)입니다. 자료구조에 대해 직관적인 이해를 하기 위해 적절한 알고리즘 문제를 찾았습니다. 백준 14425 문자열 집합 문체를 풀면서 Hash Map 또는 Set 자료구조에 대해 생각해 봅시다. https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 예제를 보면 5개의 문자열이 나옵니다. 이를 집합 S라 합니다. 그리고 11개의 문.. 2023. 2. 3.
파이썬 실습 환경 구축 가장 간단한 방법 파이썬 학습 및 실습을 위한 세상에서 가장 간단한 방법입니다. 파이썬이란 언어의 기본을 학습하는 카테고리입니다. 가장 기본적인 내용을 순차적으로 포스팅하겠습니다. 1. 파이썬 사이트 접속 Python 설치하기 위해 파이썬 공식 사이트에 접속합니다. www.python.org Welcome to Python.org The official home of the Python Programming Language www.python.org 2. 다운로드 Downloads 메뉴에서 실습 PC의 OS를 선택하여 다운로드합니다. 3. 다운로드 받은 파일을 실행하여 설치합니다. 옵션 모두를 체크하여 PATH를 자동으로 잡도록 합니다. 설치되는 경로를 확인하고 Install Now를 클릭합니다. 4. 설치 경로 확인하기.. 2023. 2. 2.
내림차순 정렬하는 방법 JAVA / C++ / 파이썬 정렬은 기본이 오름차순입니다. 1,2,3,4,5,6... 각 언어별로 내림차순 정렬하는 방법을 쉬운 알고리즘 문제를 풀어보며 확인해봅시다. 9,8,7,6,5... https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 백준 25305번 커트라인 문제를 풀어봅시다. 응시자의 숫자만큼 점수가 주어집니다. 몇등까지 상을 받는지 k값이 주어집니다. 문제 풀이 아이디어는 다음과 같습니다. 1) 성적을 내림차순으로 정렬합니다. 2) 배열의 k-1번 째 성적을 출력합니다. (배열은 0부터 시작이므로 1번째 성적은 a[0] 이므로 1을.. 2023. 1. 31.
좌표를 압축하는 알고리즘 JAVA / C++ / 파이썬 알고리즘 대회에서 좌표를 압축하는 아이디어는 많이 활용됩니다. 주어진 숫자를 압축해서 작은 용량과 작은 숫자 범위로 표현하는 것입니다. https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 매우 쉬운 좌표 압축 문제가 있습니다. 백준 18870번 좌표 압축을 풀어봅시다. 수직선위의 좌표는 매우 큰 범위를 갖습니다. 숫자도 100만개로 많습니다. (빠른 대량 입출력은 기본입니다.) 바로 떠오르는 아이디.. 2023. 1. 31.
[안드로이드 스튜디오] SDK 폴더 위치 변경 C드라이브 용량 확보 안드로이드 스튜디오는 기본적으로 SDK 데이터를 C드라이브에 위치시킵니다. 프로젝트가 점점 커지고 다양한 API 버전과 AVD 기기가 많아지다보면 C드라이브 용량이 부족해지는 상황이 발생합니다. SDK 폴더 위치를 변경해서 C드라이브 용량을 확보하도록 하겠습니다. 1. 안드로이드 스튜디오에서 우측 상단에서 Android SDK 아이콘을 클릭합니다. SDK 경로가 어디로 잡혀 있는지 확인합니다. 용량이 무려 11기가가 넘네요. 2. Edit을 눌러 경로를 D드라이브에 새로 생성한 폴더로 잡아줍니다. 3. Next 버튼을 눌러 새로 생성한 폴더에 SDK 설치를 진행합니다. 4. 설치가 완료되었습니다. Finish 버튼을 누릅니다. 5. 경로가 변경된것을 확인합니다. 필요한 SDK는 별도로 다운로드 받으시면 .. 2023. 1. 30.
[클라우드] AWS 아마존 웹서비스 회원 가입하기 본격적으로 클라우드 서비스를 사용하기 위해 AWS 회원 가입을 하겠습니다. https://aws.amazon.com/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services aws.amazon.com 1. AWS 아마존 웹서비스 사이트에 접속합니다. 무료 계정 생성 버튼을 누릅니다. 2. 로그인 화면이 나옵니다. 가입 이메일 계정과 이름을 입력합니다. AWS 계정이름은 한글 실명이 아닌 영문 닉네임 또는 프로젝트 명으로 입력하시면 됩니다. 3. 입력한 이메일로 확인 코드가 발송됩니다. 코드를 입력하고 확인 버튼을 누릅니다. 4. AWS 계정에서 사용할 암호를 입력합니다. 5. 연락처 정보를 입력합니다. 주소는 영문으로 작성하시면 됩니다. 전화번호는 휴대폰 번호로 대한민국(+82).. 2023. 1. 27.
퍼블릭 / 프라이빗 / 하이브리드 클라우드 핵심 개념 먼저 클라우드 컴퓨팅이란 무엇일까요? 정보 처리 작업을 내 PC가 아닌 네트워크로 연결된 다른 컴퓨터의 리소스로 처리하는 기술입니다. 즉, 서버를 빌려 사용하는 것입니다. 서버의 위치는 나의 관심사가 아닙니다. 예를 들어 구글 포토나 네이버 MYBOX 서비스를 생각하면 이해하기 쉽습니다. 사진이나 동영상 또는 문서를 클라우드 스토리지에 저장하고 언제 어디서든 어떤 기기로든 볼 수 있습니다. 그렇다면 기본적인 클라우드 개념을 이해한 상태에서 퍼블릭 / 프라이빗 / 하이브리드 클라우드는 각각 무엇인지 알아보겠습니다. 1. 퍼블릭 클라우드 - Public Cloud 퍼블릭 클라우드는 뜻 그대로 누구나 접근할 수 있습니다. 물론 사용한 만큼의 비용은 지불해야 합니다. 클라우드 서비스 업체(AWS, GCP, Az.. 2023. 1. 27.
[클라우드] IaaS, PaaS, SaaS 정확히 이해하기 클라우드 기술이 발전하면서 IaaS, PaaS, SaaS 용어가 중요해지고 있습니다. 이들의 개념을 정확히 모르면 클라우드 서비스를 이용하거나 제공하는 IT관련 업계에서 서로 소통하는데 어려움이 생깁니다. FaaS, CaaS, BaaS, XaaS 용어도 새롭게 등장했지만 먼저 위에 언급한 3개의 개념을 먼저 이해하면 좋습니다. 이번 포스팅에서는 본 개념을 쉽고 정확히 설명하도록 하겠습니다. 먼저 아래에 도표를 봅시다. 1. 전통적인 IT 서비스 쇼핑몰 홈페이지를 만들어 전 세계에 서비스를 제공한다고 가정해 봅시다. 1) 먼저 고정 IP를 확보합니다. 사용자가 IP 주소를 웹 브라우저에 치고 홈페이지에 들어오긴 어렵습니다. 2) 그래서 해당 IP주소와 매핑하기 위한 도메인 주소를 구입합니다. 3) 사무실을.. 2023. 1. 20.
평균, 중위값, 최빈값, 범위 구하기 C++ / JAVA / 파이썬 정렬 시간복잡도 백준 2108번 통계학 문제를 풀면서 각 언어별로 평균, 중위값, 최빈값, 범위를 구하는 알고리즘을 알아봅시다. https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제에 산술평균, 중앙값, 최빈값, 범위를 구하는 방법이 나와있습니다. 정수의 범위는 절대값 4000이므로 -4000에서 4000까지의 값을 갖습니다. 수의 개수는 500,000으로 정렬을 사용해도 시간초과가 나지 않고 충분합니다. 정렬 시간복잡도 : O(NlogN) 1. JAVA 1) 평균 구하기 .. 2023. 1. 20.
좌표 평면 2차원 배열로 표현 알고리즘 C++ / JAVA / 파이썬 백준 2663번 색종이 문제를 풀면서 좌표 평면을 2차원 배열로 어떻게 표현하는지 알고리즘 공부를 해봅시다. https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제를 보면 가로 세로 크기가 100밖에 안되는 아주 작은 좌표 평면입니다. 그렇다면 2차원 배열을 int[100][100] 선언하면 되는 간단한 문제입니다. 가로세로 길이가 10인 정사각형 색종이가 나올때마다 검은 영역을 1로 만들어줍니다. 최종적으로 1인 영역을 카운팅하면 넓이가 구해집니다.. 2023. 1. 20.
반응형