2024/08 8

[이코테] Chap 5. DFS/BFS

기초 지식탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정이다. 대표적인 탐색 알고리즘에는 DFS와 BFS가 있다. 두 알고리즘의 원리에는 스택, 큐와 같은 기본 자료구조 그리고 재귀 함수가 사용되기 때문에 이에 대한 이해가 전제되어야 한다. 이때 자료구조는 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다. 스택스택(Stack)은 박스 쌓기와 유사한 구조로, 후입선출(LIFO) 이다.파이썬에서 스택을 이용할 때엔 기본 리스트의 메서드를 이용하면 된다. ✓ append() : 리스트의 가장 뒤쪽에 데이터 삽입✓ pop() : 리스트의 가장 뒤쪽에서 데이터 꺼냄stack = []stack.append(1) # [1]stack.append(2) # [1, 2]stack.append(3) #..

[백준|실버3] 3273번 두 수의 합 - Python(파이썬)

문제https://www.acmicpc.net/problem/3273✓ 시간 제한: 1초 / 메모리 제한: 128MB n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i  입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력문제의 조건을 만족하는 쌍의 개수를 출력한다. 예제 입력195 12 7 10 9 1 2 3 1113 예제 출력 13첫 번째 풀이 - 시간초과이중 반복문을 이용했다. 시간초과 날거라고 예상은 ..

[이코테] Chap 12. 구현 문제

08. 문자열 재정렬arr = list(input())arr.sort()num = 0i = 0for _ in range(len(arr)): if '0'  문자열을 arr에 리스트로 입력받고 오름차순 정렬을 한다.num은 숫자를 더하기 위한 변수, i는 확인 인덱스를 표시하기 위한 변수이다. 문자열 arr의 길이만큼 반복을 진행한다.i번째 문자가 숫자이면 (0과 9 사이이면) 숫자 합을 구하는 변수 num에 해당 수를 더하고, i번째 문자는 pop한다. 해당 원소를 pop하며 리스트에서 제외했으므로 인덱스 i는 변경하지 않는다.숫자가 아니면 다음 인덱스의 확인을 진행한다. 모든 원소의 확인이 끝나면 숫자가 아닌 남은 문자 arr를 join으로 합치고 num을 문자열로 변환하여 합친다.

[이코테] Chap 4. 구현 (Implementation)

이론구현이란?구현은 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 어떤 문제든 소스코드를 작성해야 하므로 모든 범위의 코딩 테스트 문제 유형은 구현을 포함한다.하지만 그중에서도 특히 구현 유형이라 부르는 문제들은'풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제'를 의미한다. 다음의 두 문제 유형은 '구현'이 핵심이 되는 경우가 많다.1) 완전 탐색(브루트포스): 모든 경우의 수를 주저 없이 다 계산하는 해결 방법2) 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 구현하기 어려운 문제- 알고리즘은 간단한데 코드가 지나치게 길어지는 문제- 특정 소수점 자리까지 출력해야 하는 문제- 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는 문제 (파싱..

[프로그래머스] 삼각 달팽이 (Lv.2) - Python(파이썬)

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한 사항n은 1 이상 1,000 이하입니다.입출력 예풀이 과정문제 아이디어가 생각나지 않아 40분을 끙끙대다가, 결국 다른 사람의..

그리디 알고리즘(탐욕법) | Greedy Algorithm

그리디 알고리즘이란?그리디 알고리즘은 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘이다.  가장 좋아보인다는 것은 가장 빠르거나, 저렴하거나 등과 같은 선택을 의미한다.그리디 알고리즘은 미래는 고려하지 않는다. 즉, 현재 선택이 나중에 미칠 영향에 대해서는 고려하지 않고 선택의 순간에 가장 좋은 것을 고르는 것이다. 그렇다면 현재 상황에서 가장 좋아 보인 것을 고른 것이 결론적으로 좋은 결과를 도출할까? 아니다.현재의 최적해가 전체의 최적해를 의미하지는 않는다. 전체의 최적해가 보장되는 조건에서만 그리디 알고리즘을 써야 한다.그렇다면 어떤 조건에서 그리디 알고리즘이 유효할까?  그리디 알고리즘이 유효한 조건그리디 알고리즘이 전체의 최적해를 보장하려면 두 가지 속성이 필요하다.1. 그리디 선택 ..

2024 정보처리기사 필기 전공자 합격 후기 & 꿀팁⭐️ (누워서 공부하기🛌)

정보처리기사 필기 2024✓ 시험회차 & 날짜: 2024년 2회 / 5월 15일✓ 공부기간: 3일 (총 3시간) 인턴 기간 중 인턴 동기가 정처기 필기 본다고 해서 나도 지금 따둘까~? 하는 가벼운 마음으로 필기시험을 접수했다. 100점 만점에 과목당 40점 이상, 전 과목 평균 60점 이상이어야 합격이고, 시험을 본 주변이나 인터넷에서의 후기를 보면 전공자한테 일주일이면 충분하다고 해서 정말 공부를 안 했다..ㅎ 미루고 미루고 미루다가 사흘 정도..? 아래는 열품타로 측정했던 당시 내 공부 시간이다. ㅋㅋㅋㅋㅠㅠ 시험 직전에 공부한 건 측정을 못해서 다 하면 총 공부 시간은 3시간 정도! 결론은 합격했다.짧은 기간이었지만 많이 도움 되었던 방법이 있어 공유해보고자 한다.ᐟ 공부 방법1. 기출 무한 반복..

Review/후기 2024.08.11

[Mac] Homebrew 설치하기 | 맥북 필수 프로그램🍺

Homebrew(홈브류)란? Homebrew는 macOS의 패키지 관리 툴이며, 맥북 사용자라면 필수적으로 설치해야할 프로그램 중 하나이다. 간단한 명령어로 다양한 소프트웨어를 설치, 관리, 제거할 수 있어 매우 유용하다! ✓ Homebrew 공식 사이트: https://brew.sh/✓ Homebrew 공식 문서: https://docs.brew.sh/Manpage✓ Homebrew Github 주소: https://github.com/Homebrew/brew Homebrew는 Ruby로 개발되었고, 오픈소스 소프트웨어로 현재(2024년)도 많은 개발자들이 활발하게 개발이 이루어지고 있다. 2010년 Hoebrew는 Github에서 세 번째로 많이 포크된 저장소였을 정도로 활발한 오픈소스 기여가 이루..

IT 2024.08.07