분류 전체보기 241

[C/C++] 문자열 포인터

문자열C에는 문자열이 없고, string 자료형이 내부적으로 구현되어있는데 이는 char의 배열로 이루어져있다.string은 아래와 같이 사용하고, 저장된다.string s = "Hello"Hello\0이 코드에서 s는 "Hello"가 시작하는 첫 글자인 H가 위치한 메모리주소를 주소값으로 갖는다.s는 첫 글자가 저장된 메모리 주소를 가지고 있고, 널이 나올 때 까지 루프를 돈다즉 문자열은 포인터변수라고 보면 된다. typedef char *string;String은 내부적으로 char의 포인터 변수로 정의 되어있으며, 라이브러리를 사용하지 않는다면 아래와 같이 사용할 수 있다.char *s = "hello";char[6] s = {'h','e','l','l','o','\0'}; 문자열 포인터# incl..

Automotive/C 2024.07.26

[C/C++] Pointer 및 Const

Pointer 란?메모리의 주소값을 저장하는 변수로 주소의 시작 주소 1바이트만을 가리킴 -> int(4 Byte)의 포인터도 1Byte아래와 같이 사용한다.타입 * 포인터변수;int a = 10;int* p = &a;Pointer 연산자1.주소 연산자 &2.참조 연산자 *Const 란?변수를 상수 취급 하게 만들며, 이렇게 const를 사용하여 상수화 된 변수는 변경이 불가능하다.  상수 또는 const 상수 라고도 하며, 이는 포인터에서도 동일하게 사용할 수 있고, 위치에 따라 의미를 다르게 사용할 수 있다. 선언할 때 동시에 값을 지정해야하며, 이후에는 수정 불가하다. Const를 사용하는 이유주로 변수의 초기값을 수정하지 않아야 할 때 값을 고정하기 위해 사용 Const 사용 방법int a = 1..

Automotive/C 2024.07.24

[Python] 프로그래머스 최댓값과 최솟값

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이지문대로 구현하면 되는 단순한 구현문제공백을 기준으로 문자열을 자른 후 숫자로 변환해서 가장 큰 수와 작은수를 찾아 다시 문자열로 변환코드def solution(s): numbers = [] answer = '' s = s.split() for i in range(len(s)): numbers.append(int(s[i])) max_val = max(numbers) min_val = min(numbers) answer = str(min_val)+" "+str(max_val) return answer..

[Python] 프로그래머스 미로 탈출

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이레버까지 도달하는 데 걸리는 시간 + 레버부터 목적지까지 도달하는 데 걸리는 시간을 해야 하므로 bfs를 두 번 돌려야한다.bfs를 돌릴 때 시작지점과 도착지점이 모두 다르므로 인자로 넘겨서 큐에 넣고 탐색이후 한 개라도 도달 할 수 없는 경우가 있다면 -1, 목적지까지 도달 할 수 있다면 시간 반환코드from collections import deque# 상하좌우dy = [-1,1,0,0]dx = [0,0,-1,1]def solution(maps): # start 부터 end까지의 거..

Algorithm/BFS&DFS 2024.07.24

[Python] 프로그래머스 주식가격

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이순서대로 값을 꺼내서 확인하기 위해 주식 가격 정보를 queue로 변경맨 앞에 있는 값부터 확인하면서 확인값이 떨어지면 cnt를 멈추고 떨어지지 않았다면 계속해서 반복최대길이가  100,000이므로 for문을 돌리지 않고 바로바로 꺼내서 확인 -> 시간초과 남 ㅠㅠ코드from collections import dequedef solution(prices): answer = [] prices = deque(prices) while prices: p = prices.popl..

[Python] 프로그래머스 프로세스

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이프로세스 담은 큐 생성편의를 위해 프로세스를 알파벳으로 처리하지 않고 그냥 숫자로 처리했다.우선순위 배열 큐로 변환수행되지 않은 프로세스가 남아있을 때 까지 프로세스와 우선순위 poppop했다면 남은 우선순위를 모두 돌면서 더 높은 순위가 있다면 다시 삽입우선순위를 끝까지 돌았으나 더 높은 순위가 없다면 result에 넣기모든 프로세스가 끝났다면 resut에서 location이 있는 인덱스 찾아서 반환 후 1 더하기프로세스를 0부터 넣었는데 순서는 1부터 시작하므로 1 더해주면 됨코드from col..

[Python] 프로그래머스 기능개발

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 풀이남은 일수 담은 배열 생성편하게 연산하기 위해 큐에 일수 모두 넣기큐에서 pop한 후 그 값이 queue[0]보다 크거나 같다면 함께 처리 할 수 있는 기능queue[0]값 popcnt += 2queue[0]이 더 크다면 함께 처리할 수 없는 기능이므로 answer배열에 여태 계산한 기능 수를 넣고 바깥쪽 루프 연산 다시 시작코드from collections import dequedef solution(progresses, speeds): answer = [] days = [] for..

[Python] 프로그래머스 구명보트

문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이 (투포인터 + 그리디)최대 두 명의 사람을 한 보트에 태워보낼 수 있으므로 가장 가벼운 사람 + 가장 무거운 사람을 한 보트에 태워 보내야한다.가장 가벼운 사람과 무거운 사람의 무게를 합한 값이 limit와 같거나 작으면 두 명을 한 보트에 태워 보낼 수 있는 것이므로 양쪽의 포인터를 옮긴다.합한 값이 limit보다 크다면 한 명만 보트에 태워 보낼 수 있으므로 가장 무거운 사람만 먼저 보낸 후 end 포인터만 옮긴다.각 연산 시 보트에 사람을 태워보냈으므로 answer값도 1씩 증가시킨다.코드d..

Algorithm/Greedy 2024.07.16

[Python] 백준 9935번 문자열

문제https://www.acmicpc.net/problem/9935입력첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다.둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다.두 문자열은 모두 알파벳 소문자와 대문자, 숫자 0, 1, ..., 9로만 이루어져 있다.출력 첫째 줄에 모든 폭발이 끝난 후 남은 문자열을 출력한다.입력 예제mirkovC4nizCC44C412ab112ab2ab12ab출력 예제mirkovnizFRULA문제 풀이stack에 문자를 하나씩 넣으면서 bomb문자가 있는지 확인한다.bomb 문자가 있다면 bomb의 길이만큼 stack에서 pop한다.stack에 남아있는 문자가 없다면 FRULA를 출력한다...

[Python] 백준 28215번 대피소

문제https://www.acmicpc.net/problem/28215 입력 예제5 21 53 03 36 128 94 20 00 55 05 5출력 예제55문제 풀이조합으로 k개의 집에 대피소 설치각 집에서 최소거리가 걸리는 대피소 찾기가장 가까운 대피소에서 멀리 떨어진 거리 찾기먼 거리중 최소거리 걸리는 대피소 찾은 후 출력코드from itertools import combinationsn,k = map(int,input().split())house = []for _ in range(n): x,y = map(int,input().split()) house.append([x,y])# 모든 집과의 거리가 가장 가까운 대피소 찾기list = [[] for _ in range(n)]result = f..