input & itertools.accumulate 함수 알아보기
·
프로그래밍 언어/파이썬
input() 함수 소개input()은 Python의 기본 내장 함수로, 사용자로부터 표준 입력(Standard Input)을 받아 문자열 형태로 반환합니다. input() 함수는 사용자가 Enter 키를 누를 때까지 입력을 기다립니다.사용법: input("프롬프트 메시지")특징:입력받은 모든 데이터를 문자열(str)\로 처리합니다. 숫자를 입력하더라도 문자열로 인식하기 때문에, 산술 연산을 위해서는 int()나 float() 등으로 형 변환이 필요합니다.프롬프트 메시지를 인자로 전달하여 사용자에게 입력받을 내용을 안내할 수 있습니다.코딩 테스트 환경에서는 대량의 데이터를 빠르게 읽어와야 할 때가 많으므로, input() 대신 더 빠른 sys.stdin.readline()을 사용하는 것이 일반적입니다.동..
누적 합(Prefix Sum) 개념과 구간 합 구하기
·
여러가지/알고리즘 & 자료구조
[파이썬 알고리즘] 누적 합(Prefix Sum) 개념과 '구간 합 구하기 4' 문제 풀이1. 문제 이해: 왜 누적 합이 필요할까?'구간 합 구하기 4' 문제는 N개의 숫자가 주어졌을 때, 특정 구간 [i, j]의 합을 M번 구하는 문제입니다.입력 조건:N과 M은 최대 100,000각 구간의 합을 M번 계산해야 함만약 단순하게 매번 i부터 j까지 반복문을 돌려 합을 구한다면, 한 번의 계산에 O(N)의 시간이 걸립니다. 이를 M번 반복하면 총 O(M x N)의 시간 복잡도가 되어, 100,000 x 100,000 = 10의 10승이라는 엄청난 연산 횟수로 시간 초과가 발생하게 됩니다.이 비효율을 해결해 줄 열쇠가 바로 누적 합(Prefix Sum)입니다.2. 핵심 개념: 누적 합 배열(Prefix Sum..
개발자라면 꼭 알아야 할 컴퓨터 시스템의 계층적 관점
·
컴퓨터 구조와 운영체제
컴퓨터 시스템을 배우다 보면 단순히 CPU, 메모리, 하드디스크 같은 하드웨어만 떠올리는 경우가 많습니다. 하지만 실제로 우리가 작성한 프로그램이 실행될 때에는, 수많은 계층이 서로 협력하며 동작합니다. 이를 컴퓨터 시스템의 계층적 구조라고 부르며, 이해하지 못하면 실무에서 문제 해결이 매우 어렵습니다.예를 들어,로컬 개발 환경에서는 잘 되던 코드가 배포 후 장애가 나는 이유서버가 갑자기 느려지는 이유코드 자체에는 오류가 없는데 서비스가 다운되는 이유이런 현상들은 거의 대부분 계층 간의 상호작용 문제에서 발생합니다. 따라서 개발자라면 시스템을 “층”으로 나눠서 이해하고, 각 층이 담당하는 책임과 역할, 그리고 실무에서 어떤 식으로 문제를 진단하고 해결하는지 논리적으로 바라볼 수 있어야 합니다.이제 대학생..
컴퓨터 구조란 무엇인가?
·
컴퓨터 구조와 운영체제
✅ 1) 컴퓨터 구조의 정의컴퓨터 구조(Computer Architecture) 라는 말은, 한마디로“컴퓨터가 어떤 방식으로 구성되고, 명령을 처리하며, 데이터를 전달하고 저장하는가를 설명하는 체계”라고 이해하면 돼.조금 더 기술적으로 말하면,프로세서(연산 장치)메모리(저장 장치)입출력(I/O) 장치버스(데이터 전송 경로)같은 구성 요소가 어떻게 연결되고, 어떤 규칙으로 데이터를 주고받으며 동작하는지에 대한 설계 철학을 말해.✅ 2) 컴퓨터 구조 vs 컴퓨터 조직의 차이이 부분은 헷갈리는 친구들이 많아서 꼭 짚고 갈게!컴퓨터 구조 (Computer Architecture)→ 개발자나 설계자가 바라보는 추상적인 구조→ 예: “이 CPU는 어떤 명령어 세트를 지원하지?”→ “레지스터가 몇 개고, 메모리는 어..
컴퓨터 구조 학습, 실무와 연결되는 이유와 사례
·
컴퓨터 구조와 운영체제
1. 문제 해결 능력 배양1) 코딩 오류의 근원적 문제 파악예를 들어, 로컬 개발 환경에서는 잘 동작하는 웹 애플리케이션이 실제 서버 배포 후에 갑자기 멈추는 사례를 생각해볼 수 있습니다.→ 이럴 때는 코드 문법 오류가 아니라, 서버 운영체제의 파일 권한, 메모리 부족, 혹은 다른 버전의 라이브러리 등이 원인이 되는 경우가 많습니다.따라서 컴퓨터 구조 지식이 있으면 “CPU, 메모리, 운영체제 자원”과 코드가 어떻게 맞물려 실행되는지를 이해할 수 있고, 환경 차이로 발생하는 문제까지 진단할 수 있습니다.실제로 대규모 서비스를 운영하는 회사에서는 서버와 개발 환경의 차이로 버그가 발생해 장애가 나는 일이 빈번합니다. 이때 시스템 수준의 문제를 추적하고 해결하는 능력은 컴퓨터 구조에 대한 이해에서 비롯됩니다..
2024 회고록
·
여러가지/일기
1. 서문올해를 한 문장으로 요약하자면, "2024년은 도전과 성장, 그리고 새로운 출발의 해였다."회고록을 작성하는 이유는 지난 한 해를 정리하며 앞으로 나아갈 방향을 더 명확히 하기 위해서다. 내 감정, 배움, 관계를 돌아보며 나의 성장을 기록하고 싶다.2. 성과와 주요 사건개인의 성과올해 가장 기억에 남는 성과는 다음과 같다.새로운 회사에 합류하여 프로젝트에 성공적으로 투입되었다.길었던 취업 준비 과정을 마치며 스스로의 한계를 극복했다.운동을 꾸준히 실천하며 건강한 삶의 패턴을 유지했다.주요 사건2024년은 다사다난한 사건들로 가득했다. 다음은 월별 주요 사건이다.2월: 구로에서 역삼으로 이사.3월: 회사의 권고사직으로 인해 큰 변화를 맞이함.4월: 항해99 취업 리부트 교육 시작.5월: 실업급여 ..
Windows에서 여러 버전의 Python을 쉽게 관리하는 방법: pyenv-win 설치와 오류 해결
·
트러블슈팅
수정된 블로그 글을 아래와 같이 작성하였습니다.Windows 환경에서 Python 버전을 손쉽게 관리하는 방법: pyenv-win 설치 및 오류 해결Windows 환경에서 다양한 Python 버전을 관리하고 프로젝트별로 필요한 Python 버전을 쉽게 전환할 수 있는 방법을 소개합니다. pyenv-win 도구를 설치하여 Python 3.7, 3.8, 3.9 등의 여러 버전을 동시에 사용할 수 있습니다. 이 글에서는 설치 과정 중 발생할 수 있는 오류와 그 해결 방법까지 함께 설명합니다.1. Python 버전 관리 도구 pyenv-win 설치설치 명령어관리자 권한으로 PowerShell을 실행한 후, 다음 명령어를 입력하여 pyenv-win을 설치합니다.Invoke-WebRequest -UseBasicPa..
[LeethCode] 160번 Intersection of Two Linked Lists
·
여러가지/알고리즘 & 자료구조
Intersection of Two Linked Lists문제 설명- 두 개의 단방향 연결 리스트 headA와 headB가 주어집니다.- 두 리스트가 어떤 위치에서든 교차할 수 있습니다. 즉, 특정 노드 이후부터 두 리스트가 동일한 노드들을 공유하게 될 수 있습니다.- 이 문제에서 교차점이란 두 리스트가 연결되어 동일한 노드들이 뒤따르는 시작 지점을 의미합니다.- 교차점이 없는 경우 null을 반환합니다. 예시1. 예제11) 입력 : headA = [4,1,8,4,5], headB = [5, 6, 1, 8, 4, 5]2) 출력: 교차 노드 값이 82. 예제21) 입력: headA = [2,6,4], headB = [1,5]2) 출력: null (교차 없음)해결방법투 포인터를 사용합니다. 1. 포인터 설정..