분류 전체보기
-
[C++] stringstream을 while문의 조건으로 사용할 때 주의할 점Study/C & C++ 2022. 10. 13. 14:13
코딩 테스트 문제를 풀다 보면 stringstream으로 값을 추출할 때가 많다. 공백이나 특정 문자 기준으로 잘라내기 위해 while문과 stringstream 객체를 조합하여 사용할 경우가 많다. stringstream객체를 while문의 조건으로 사용할 때, 주의하지 않으면 분명 다 읽었는데 반복을 한 번 더 돌거나 하는 문제가 생길 수 있다. 아래 코드는 공백으로 구분된 문자열을 받아, 공백을 지우고 출력하는 코드이다. #include #include #include using namespace std; int main() { string input; getline(cin, input); // 개행문자 전까지 한 줄 읽음 stringstream ss(input); string buf; while ..
-
[운영체제] 가상 메모리(Virtual Memory)와 페이징, 세그멘테이션Study/컴퓨터 구조 & 운영체제 2022. 10. 11. 18:27
메모리란? 메모리는 프로세스 실행에 필요한 데이터 및 코드를 저장하는 장치 메모리는 크게 내부 기억장치인 주 기억장치, 외부 기억장치인 보조 기억장치로 나눈다. 내부 기억장치는 보통 CPU의 Cache, Register, 또는 RAM이다. 보조 기억장치는 HDD, SDD이다. 내부 기억장치의 읽기/쓰기 속도가 보조 기억장치보다 훨씬 빠름 당연히 내부 기억장치에서 모든 것을 처리하면 좋겠지만, 내부 기억장치는 용량이 작고 휘발성이므로 보조 기억장치를 사용한다. 가상 메모리 가상 메모리는 왜 쓰는가? 실제 메모리 크기보다 요구 메모리가 큰 프로그램(프로세스)를 실행하기 위해서 보통 사용하는 RAM의 전체 용량은 16GB정도가 보통이다. 그런데 용량이 50GB나 되는 게임들을 어떻게 실행할 수 있을까? -> ..
-
[열혈 TCP/IP 소켓 프로그래밍] Chapter4. 내용 확인문제Study/Network 2022. 10. 8. 17:45
01. TCP/IP 프로토콜 스택을 4계층으로 구분하고, TCP소켓이 거치는 계층구조와 UDP 소켓이 거치는 계층구조의 차이점 설명 TCP/IP 프로토콜 스택은 LINK - IP - TCP/UDP - APPLICATION 계층으로 구분되어 있다. TCP 소켓은 TCP 스택을 거치고, UDP 소켓은 UDP 스택을 거친다. (당연한듯;;) 02. LINK계층과 IP계층이 담당하는 역할, 관계 LINK 계층은 물리적인 연결에 대한 프로토콜을 정의한다. IP 계층은 데이터의 송수신 경로에 대한 프로토콜을 정의한다. (IP계층에서는 송수신의 오류발생에 대한 대비가 되어있지 않다.) IP계층은 LINK계층의 물리적 연결 프로토콜 위에서 동작한다 03. TCP/IP 프로토콜 스택이 4가지로 나뉘는 이유를 개방형 시스..
-
[프로그래머스] Level2 - k진수에서 소수 구하기코딩 테스트 2022. 10. 6. 12:50
1. 문제 설명 Link : https://school.programmers.co.kr/learn/courses/30/lessons/92335 2. 나의 풀이 #include #include #include #include using namespace std; string ToNotation(int number, int notation) { stack stk; while(number >= 1) { stk.push(number % notation); number = number / notation; } string ret = ""; while (!stk.empty()) { ret += to_string(stk.top()); stk.pop(); } return ret; } bool IsPrime(long l..
-
[프로그래머스] Level2 - 주차 요금 계산코딩 테스트 2022. 10. 5. 14:20
1. 문제 설명 Link : https://school.programmers.co.kr/learn/courses/30/lessons/92341 2. 나의 풀이 #include #include #include #include #include using namespace std; struct ParkingData { int recentTime; int acc; bool parked; ParkingData() : recentTime(0), acc(0), parked(false) { } }; vector solution(vector fees, vector records) { int baseTime = fees[0]; int baseFee = fees[1]; int unitTime = fees[2]; int un..
-
[프로그래머스] Level2 - 두 큐 합 같게 만들기코딩 테스트 2022. 9. 29. 14:18
1. 문제 설명 Link : https://school.programmers.co.kr/learn/courses/30/lessons/118667 2. 나의 풀이 #include #include #include using namespace std; typedef unsigned long long ULL; int solution(vector queue1, vector queue2) { ULL sum1 = accumulate(queue1.begin(), queue1.end(), 0); ULL sum2 = accumulate(queue2.begin(), queue2.end(), 0); // 두 수의 합이 홀수인 경우 if ((sum1 % 2 == 0 && sum2 % 2 == 1) || (sum1 % 2 == ..
-
[프로그래머스] Level1 - 신고 결과 받기코딩 테스트 2022. 9. 27. 12:50
1. 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k ..
-
[열혈 TCP/IP 소켓 프로그래밍] Chapter3. 내용 확인문제Study/Network 2022. 9. 22. 17:58
01. IP주소체계 IPv4와 IPv6의 차이, IPv6의 등장배경 IPv4는 4Byte로 표현하는 주소체계, IPv6는 16Byte로 표현하는 주소체계이다. IPv6는 IPv4 주소의 고갈을 염려하여 만들어졌다. 02. 로컬 네트워크까지 데이터가 전달되는 과정 IPv4의 Network ID를 통해 라우터까지 데이터가 전송 라우터는 Host ID를 확인해 연결된 컴퓨터에 데이터 전송 03. 소켓의 주소가 IP와 PORT번호 두 개로 구성되는 이유 IP는 네트워크 상에서 연결되어 있는 컴퓨터를 식별하기 위한 주소이고, PORT는 OS에서 소켓을 식별하기 위한 주소이다. IP를 통해 컴퓨터에 데이터가 도착하면, PORT를 통해 알맞은 소켓에 OS가 데이터를 보내주게 된다. 04. IP주소 클래스별 차이 클래..