분류 전체보기 381

C언어로 연결리스트 자료 구조 구현해보기

자료 구조란? 자료 구조는 기존의 컴퓨터 메모리를 보다 더 효율적으로 사용 및 관리하기 위해 새로 정의하는 구조체로서 컴퓨터 메모리에 정보를 각기 다른 방법으로 저장할 수 있도록 해준다. 대표적으로 배열, 리스트, 해시, 세트 등이 있다. 연결리스트란? 각 인덱스 값이 메모리상 연이어 저장되어있는 정적인(static) 자료구조의 배열과 달리 연결리스트는 동적인(dynamic) 자료구조로 각 노드(Node)들이 메모리상의 여러 군데 나뉘어 있는데, 각 노드에서 자신의 값뿐만 아니라 다음 노드 값의 주소(포인터)도 저장하고 있어 배열과 동일하게 값을 연이어 읽을 수 있다. 이때 마지막 노드는 다음 값이 없으므로 NULL을 다음 값의 주소로 저장한다. 연결리스트의 시간복잡도 크기가 변경될 경우 배열은 메모리 ..

Algorithm/Basic 2022.01.09

2022 마스터즈 코스(백엔드) 5일차 회고(2022. 1. 7.) - "단순 지식 축적 학습이 아닌 호기심에 기반한 학습"

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :) 수강 회고 오전 스크럼을 통해 어제 리눅스 실습했었던 내용에 대해 나누는 시간을 가졌다. 확실히 다들 처음 해보는 실습이라 지친 기색들이 역력했었다. 그룹원들별로 운영체제들이 상이하여 각자 자기들만의 설치, 접속 등의 실습했었던 내용들을 공유했으며 서로 궁금한 점들에 대해 질문하는 시간들도 가졌다. 오늘로 코드스쿼드가 개강한지 5일차 되는 날이다. 이제는 현재 그룹원들끼리 문제에 대해 편하게 나눌 수 있는 분위기가 형성되었는데, 다음주에는 또 다른 그룹으로 편성된다고 하니 조금 아쉽다. 하지만 앞으로 어떤 조직에서 일하든 항상 자기랑 잘 맞는 사람들이랑만 할 수는 없다. 3년..

2022 마스터즈 코스(백엔드) 4일차 회고(2022. 1. 6.) - "마침내 접하게 된 리눅스 운영체제"

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :) 수강 회고 오전에 그룹 스크럼을 진행하면서 어제 알고리즘 문제를 풀면서 어려웠던 점들을 얘기했다. 나 같은 경우 수학적 사고가 많이 필요로 하는 문제들을 어려웠는데, 다른 소그룹원들도 마찬가지였던 것 같다. 또한 각자 자신들이 이용하고 괜찮았던 알고리즘 강의들을 공유했었는데 듣고싶은 강의들도 많았지만 한편으로 앞으로 코드스쿼드 과정 중에 이러한 강의들을 들을 여유가 생길지 걱정이 들었다. 그동안 독학하면서 시간을 체계적으로 사용하지 못했었는데, 앞으로 6개월간 시간 관리를 철저히 해야겠다는 생각이 들었다. 오전에 오늘의 CS 미션이 발표되었는데 그동안 (언젠가) 공부 해야지,..

2022 마스터즈 코스(백엔드) 3일차 회고(2022. 1. 5.) - "상대방 입장에서 생각해보기"

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :) 수강 회고 오늘은 오전 소그룹원들과 모여 데일리 스크럼을 간단히 하고, 10시 30분부터 알고리즘 문제 풀이를 시작했다. 사실 개인적으로 알고리즘 문제 풀이 시 백준 플랫폼은 잘 이용하지 않았었던 터라, 낯선 느낌이었다. 우선 한 문제를 풀고 소그룹원 zoom 회의실에서 정보 공유 등을 위해 해당 문제를 풀었다고 팀원들에게 알렸는데 아차싶었다. 왜냐하면 만약 아직 못 푼 사람들이 있었다면 괜히 조급함을 주었을 것 같다는 생각(나만의 생각일 수도 있지만)이 들었기 때문이다. 앞으로 CS10이든, 알고리즘 문제 풀이든 앞으로 문제 해결 과제에 있어서 상대의 상황도 고려하고 배려해..

[백준 - 10757] 큰 수 A + B - Java

문제 설명 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 1 : Fail(정수 오버플로우) 소스 코드 import java.util.*; public class Main{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); char[] A = sc.next().toCharArray(), B = sc.next().toCharArray(); int maxLength = getMaxLength(A, B), result = 0, mul = 1; for (int i = maxLength -1; i > -1; i--) { result +=..

Algorithm/BOJ 2022.01.05