전체 글 30

[BOJ][C++] 백준 2667번: 단지번호붙이기

문제https://www.acmicpc.net/problem/2667 문제 이해N × N 크기의 정사각형 지도에서 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다.집이 있는 곳(1)끼리 상하좌우로 연결시켜 단지를 만든다.총 단지수와 단지내 집의 수를 오름차순으로 출력한다. 문제 풀이 🔍 접근 집이 존재하는 곳을 기준으로 그 집의 상하좌우에 또 다른 집이 존재하는지를 판단하는 그래프 탐색 문제로 볼 수 있다.지도를 순회하면서 '1'이 나왔을 때 모든 인접 정점을 방문하여 연결된 집의 개수를 구한다.  🔨 구현 BFS와 DFS를 이용하여 풀 수 있다.방문 표기는 visited 배열을 만드는 대신 지도에서 방문한 곳을 '0'으로 바꾸어 표기할 수 있다.집이 있는 곳에서 dr, dc 배열을 이용해서 상..

[BOJ][C++] 백준 3085번: 사탕 게임

문제https://www.acmicpc.net/problem/3085 문제 이해N×N 크기의 보드에 사탕을 4가지 색으로 채워져있다.인접한 두 칸을 골라 사탕을 서로 교환한다.행 또는 열에서 같은 색으로 이루어져 있는 가장 긴 연속 부분을 구한다. 문제 풀이 🔍 접근 모든 경우의 수를 탐색하는 시간복잡도를 계산해보면,사탕을 교환하는 데 N * N, 연속하는 최대 개수를 구하는 데 N * N 이므로 총 O(N^4)이다.N ≤ 50이므로 제한시간 내에 계산할 수 있다. 💡 브루트포스행/열에서 인접한 두 칸을 골라 서로 사탕을 교환한다.연속하는 행/열의 최대 개수를 찾는다.1회 교환할 때마다 최대 개수를 찾는다. 코드#include #include using namespace std;/*1. 행/열에서 인..

[BOJ][C++] 백준 1789번: 수들의 합

문제https://www.acmicpc.net/problem/1789 문제 이해서로 다른 N개의 자연수의 합이 S이다. S가 주어질 때 N의 최댓값을 구한다. 문제 풀이💡 아이디어N이 최대가 되려면, 자연수를 1부터 차례대로 더하는 방식을 생각할 수 있다. 1 + 2 + 3 + 4 + ... = S 이런식으로 더할 경우 N이 최대가 된다.1 + 2+ 3 + ... + n = n * (n + 1) / 2 인 점을 이용해서 예시를 살펴볼 수 있다.예: 2001 + 2 + 3 + ... + 18 + 19 = 190 에서 10을 더하면, 서로 다른 수라는 조건을 만족하지 못한다.1 + 2 + 3 + ... + 17 + 18 = 171 이므로, 29를 더하면 200이 된다.N의 최댓값은 19이다. 🔨 구현반복..

[BOJ][C++] 백준 15650번: N과 M (2)

문제https://www.acmicpc.net/problem/15650 문제 이해1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 출력한다.고른 수열은 오름차순이어야 한다. 문제 풀이💡 DFS를 이용한 백트래킹 이전에 올린 N과 M (1) 문제에서, 출력할 수열이 오름차순인 것만 추가되었다. [BOJ][C++] 백준 15649번: N과 M (1)문제https://www.acmicpc.net/problem/15649 문제 이해1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 모두 구한다. 문제 풀이💡DFS를 이용한 백트래킹    1부터 N까지 재귀함수를 이용해 탐색하y-e-99.tistory.comN과 M (1)과 풀이 방식이 비슷한데, for 반복문에서 i값을 이용하면 중복없이 오름..

[BOJ][C++] 백준 15649번: N과 M (1)

문제https://www.acmicpc.net/problem/15649 문제 이해1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 모두 구한다. 문제 풀이💡DFS를 이용한 백트래킹    1부터 N까지 재귀함수를 이용해 탐색하며 중복 없이 M개의 수를 선택하고 출력한다.종료 조건: M개의 수를 모두 선택했을 때탐색- 1부터 N까지 탐색을 반복한다.- 수를 중복해서 선택하지 않도록 방문 표기한다.- 탐색한 수를 출력할 배열에 삽입한다.- 탐색이 끝난 수를 배열에서 제거하고 방문하지 않은 수로 표기한다.탐색 종료- 선택한 M개의 수가 담긴 배열을 출력 후 탐색을 종료한다. 코드#include#includeusing namespace std;int N, M;vector v;vector visited;..

[SWEA][C++] 1289. 원재의 메모리 복구하기

문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 문제 이해초기화 상태(모든 bit가 0)에서 원래 상태로 복구해야 한다.복구할 때는 bit 중 하나를 골라 0 또는 1을 결정하고, 해당 값이 메모리의 끝까지 덮어씌워진다.초기화 상태에서 원래 상태로 복구할 때 최소 수정 횟수를 구한다. 입출력 예시입력: 00110000에서 3번째 bit를 골라 1로 설정하면 0011이 되므로, 출력값은 1이다.입력: 100000 → 111 → 100로, 출력값은 ..

[면접을 위한 CS 전공지식 노트] 2.2 TCP/IP 4계층 모델

인터넷 프로토콜 스위트(internet protocol suite): 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합1. 계층구조TCP/IP(Transmission Control Protocol/Internet Protocol) 4계층 모델: 네트워크에서 사용되는 통신 프로토콜의 집합OSI 7계층 모델: TCP/IP 계층과 달리 애플리케이션 계층을 3개로 쪼개고 링크 계층을 데이터 링크 계층과 물리 계층으로 나누어 표현하며, 인터넷 계층을 네트워크 계층으로 부름.애플리케이션(application) 계층FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층FTP: 장치와 장치 간의 ..

[면접을 위한 CS 전공지식 노트] 2.1 네트워크의 기초

네트워크: 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합노드: 서버, 라우터, 스위치 등 네트워크 장치링크: 유선 / 무선1. 처리량과 지연 시간처리량(throughput)링크 내에서 성공적으로 전달된 데이터의 양. (= 트래픽을 처리한 양)단위: bps(bits per second). 초당 전송/수신 비트 수트래픽, 대역폭, 에러, 하드웨어 스펙에 영향 받음트래픽: 특정 시점에 링크 내에 흐르는 데이터 양대역폭: 주어진 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수지연 시간(latency)요청이 처리되는 시간. 메세지가 두 장치 사이를 왕복하는 데 걸린 시간매체 타입, 패킷 크기, 라우터의 패킷 처리 시간에 영향 받음2. 네트워크 토폴로지와 병목 현상네트워크 토폴로지(netwo..

[7주차] Javascript 예제 실습

HTML, CSS에 이어 Javascript 기초를 학습한 후 예제를 풀어보았습니다.아래 링크에서 최하단의 Quiz를 직접 구현했습니다.실습 예제 모음 | 자바스크립트 기초Quiz-1) 메인화면 탭 메뉴 구현 html 코드기본 HTML 코드는 다음과 같이 작성 합니다. About Custom Software Development Company Products Building tailored software to address critical needs of global enterprises. Technology Machine Learning, Artificial Intelligent, Cloud Platform. ..

[4-6주차] 음원 스트리밍 서비스 FLO 웹 사이트 클론 코딩

이번 주차부터는 스터디원들과 HTML, CSS를 이용해서 웹사이트를 클론 코딩하기로 했습니다.선정한 웹사이트는 음원 스트리밍 서비스 FLO입니다.FLO 홈페이지중앙에 음악 앨범들이 길게 나열되어 있는 것이 특징적이라 이 부분을 구현해보고 싶다는 팀원들의 의견으로 선정하게 되었습니다. html 구조웹 페이지의 레이아웃을 살펴보고 그에 맞게 역할 분배를 진행했습니다.header & 네비게이션 바mainfooter main에서 아래로 길게 반복되는 앨범 부분은 2명의 팀원이 담당하기로 하고,상단에 있는 좌우로 슬라이드할 수 있는 음악 리스트는 header를 담당한 팀원이 구현하기로 했습니다.저는 footer를 담당했습니다.규칙1. 원본 사이트 소스 코드 보지 않기2. 요소들의 크기, 폰트 등을 맞추기 위해 크..