profile
소프트웨어 전공생 백엔드 개발자 도전기

백준 1193

이 문제는 딱 처음 봤을때 당연히 2차원 배열을 만들고, 답을 하나하나 찾아가는 식으로 풀어야 하는줄 알았는데,,, 생각해보니 해당 순서의 값만 알아내면 될 것 같았다! 표의 모든 값을 알아내는 것이 무의미하게 보였기 때문에 "어떻게 하면 순서로 값을 유추해낼 수 있을 것인가"에 초점을 맞추었다. 일단 대각선을 기준으로 for문을 작성하였고, 대각선 안에...

2024년 4월 5일
·
0개의 댓글
·

백준 10988

백준의 10988 번을 풀어보았다. 그동안 너무 C++만 사용하여서 오랜만에 C로 풀어보았는데 막히는 부분이 있었다. 내가 처음에 썼던 코드는 이러하다. 에러가 뜨는 것은 아니지만 자꾸 다른 답이 나오길래 고민을 해보았다. 문자열의 길이를 셀 때 sizeof에서 1을 빼는 방식으로 세왔는데, 그전까지 그 방법이 잘 작동했던 이유는 애초에 초기화 당시 문...

2024년 4월 5일
·
0개의 댓글
·

백준 BOJ 2525

시간의 덧셈 문제이다. 60분이 채워지면 올림이 되고, 24시간이 채워지면 다시 0시로 돌아가는 체계를 어떻게 코드로 구현할지가 관건이다. 나는 일단 현재 분과 더해질 분이 60을 넘는지 아닌지로 첫번째 케이스를 나누었고, 그 안에서 60을 넘지 않을 때는 현제 시간과 더해질 시간이 24를 넘는지 아닌지로 케이스를 나누었다. 60을 넘을 때는 시간이 올림되...

2024년 3월 28일
·
0개의 댓글
·

백준 BOJ 2884 C++

알람시계를 45분 앞당기는 문제. 24시간 표현을 이용한다.(0:00~23:59) 이 문제에서의 생각할 거리는 시간 뺄셈을 어떻게 하느냐와, 자정일 때(0시) 45분 앞당기면 23시가 되어버린 다는 점이다. 나는 분 단위에서 45분보다 큰 경우와 작은 경우를 구분하였고, 시간 단위에서는 0시 일때와 아닐 때로 구분하여 해결하였다. >

2024년 3월 28일
·
0개의 댓글
·

03-2 데이터 입력

scanf 함수 : 키보드에서 입력 받은 데이터를 연산이 가능한 정수나 실수로 변환시켜주는 함수 scanf 함수의 사용법 문자열을 저장할 때만 앞에 &를 붙이지 않는다. (한글은 한 자당 2바이트 차지) scanf 에서는 char형 변수에 %d를 사용하거나 short형 변수에 %d를 사용하는 것이 불가능하다. printf에서는 이미 공간이 할당되고 값...

2024년 1월 18일
·
0개의 댓글
·

03-1 변수

"변수를 선언한다" : 메모리에 저장 공간을 확보한 뒤 해당 저장 공간에 이름을 붙힌다 변수 선언 방법 -> 정수를 저장할 공간을 a라고 이름 붙여 메모리에 4바이트를 할당하겠다고 컴파일러에 알려 주는 것 (임시 주소의 개념) 그렇다면 우리가 할당한 a라는 저장 공간에는 무엇이 들어 있을까? -> 컴퓨터의 메모리 공간은 재활용되기 때문에 이전에 해당 공...

2024년 1월 18일
·
0개의 댓글
·
post-thumbnail

02-2 상수와 데이터 표현 방법

정수 상수 표현법 => 10진수, 8진수, 16진수 10진수 0~9의 10 가지 숫자 표현-> 12 (숫자 그대로) 변환 문자-> %d 8진수 0~7의 8가지 숫자 표현-> 014 (앞에 0을 붙임) 변환 문자-> %o 16진수 0~f의 16가지 단위 숫자 표현-> 0xc (앞에 0x를 붙임) 변환 문자-> %x (소문자로 출력), %X (대문자로 출력) ...

2024년 1월 17일
·
0개의 댓글
·
post-thumbnail

02-1 C프로그램의 구조와 데이터 출력 방법

main함수 구조 stdio.h 란? standard input and output을 의미, 입출력 함수가 들어있음 제어 문자 출력 제어 문자를 문자열 안에 포함시키면 그 기능에 따라 출력 형태를 바꾼다. 보통 \제어문자 형태로 사용한다 1) \n (new line) : 다음 줄로 이동 가장 보편적으로 사용되고 줄 바꿈의 역할을 함 Be hap...

2024년 1월 17일
·
0개의 댓글
·

HTTP

이번 글에서는 HTTP에 대해 자세히 다뤄보도록 하겠다. HTTP의 특징 stateless http는 stateless하다는 특징이 있다. stateless하다는 것이 무엇인지 반대 상태인 stateful과 비교하여 설명하겠다. stateful은 클라이언트의 정보를 기억하는 프로토콜이다. 위 예제에서, 점원은 고객이 이전에 물어봤던 정보들을 기억하고, ...

2023년 12월 20일
·
0개의 댓글
·

Application Layer

이번 글에서는 Application Layer에 대해 전반적으로 알아보도록 하겠다. Application Architectures 어플리케이션 아키텍쳐에는 client-server 아키텍쳐와 P2P 아키텍쳐가 존재한다. client-server 아키텍쳐는 일반적으로 사용되는 아키텍쳐로써, client들의 소통을 책임지는 중앙 서버가 존재하고, 이 서버를...

2023년 12월 20일
·
0개의 댓글
·

MST와 Prim's Algorithm

MST(Minimum Spanning Tree)에 대해 알아보기 전에, Spanning Tree가 무엇인지부터 차근차근 알아보자. Spanning Tree(신장 트리)란, 연결된 비방향성 그래프에서 Cycle(순환 경로)를 만드는 요소들을 제거하여 트리가 된 그래프를 의미한다. 이 Cycle을 만드는 요소를 제거하는 과정에서, Spanning Tree의 ...

2023년 12월 7일
·
0개의 댓글
·
post-thumbnail

Multiple Chained Matrix Multiplication(연쇄 행렬곱셈)

이번 게시물에서는 연쇄 행렬곱셈에 대해 부르트 폴스 알고리즘과 다이나믹 프로그래밍을 이용한 알고리즘을 알아보겠다. iXj행렬과 jXk행렬을 곱하기 위해서는 iXjXk번의 기본 곱셈이 필요하다. 이러한 상황에서 연쇄적으로 행렬을 곱할 때, 곱하는 순서에 따라 기본 곱셈의 횟수가 달라지게 된다. 이러한 상황에서, 어떤 순서로 곱해야 기본 곱셈의 횟수가 가장 ...

2023년 12월 6일
·
0개의 댓글
·

Dijkstra's Algorithm

오늘은 Dijkstra's Algorithm에 대해 배우고, C++로 구현해 보았다. Dijkstra 알고리즘은 가중치가 있는 방향성 그래프에서 한 특정 정점에서 다른 모든 정점으로 가는 최단 경로를 구하는 문제이다. Dijkstra 알고리즘은 최단 경로를 구할 때 그 전까지 구했던 최단 거리 정보를 가져와 사용하기 때문에 Dinamic Programmin...

2023년 11월 24일
·
0개의 댓글
·

Kruskal's Algorithm

오늘은 Kruskal's Algorithm에 대해 배우고, 해당 슈더코드를 C++로 구현까지 해보았다. Kruskal's Algorithm은 MST를 만들기 위한 알고리즘이다. 모든 노드를 최소한의 비용으로 '연결'시켜야 하는 것이기 때문에 edge를 오름차순으로 정렬하고, 정렬된 edge를 순서대로 포함시키는 방법을 이용한다. > node들을 disjoi...

2023년 11월 24일
·
0개의 댓글
·

Floyd's Algorithm

학교에서 Floyd's 알고리즘을 배웠고, 과제로 자유로운 언어로 해당 알고리즘을 구현하는 것이 나왔다. 나는 C++를 이용했다. 노드에서 시작하는 것은 시간 부족으로 하지 못했구,, 다음에 시간 나면 해봐야겠다

2023년 11월 17일
·
0개의 댓글
·