본문 바로가기
728x90
반응형

분류 전체보기510

[백준] 10989번 : 수 정렬하기 3 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 어떤 정렬 방법을 사용하더라도 메모리 초과가 발생한다. 하여 메모리를 입력의 최댓값인 10,000까지로 지정하여 각 값을 입력받을 때마다 해당 위치에 개수를 증가시킨 후, 개수 별로 출력해 주는 방식으로 해결하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 입력할 수의 개수를 입력받는다. N = int(sys.stdin.readline()) 최대 입력가능 값인 10,000까지 인덱스 번호가 .. 2023. 7. 15.
[백준] 2667번 : 단지번호붙이기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 넓이 우선 탐색을 활용하여 상, 하, 좌, 우 4방향을 매번 탐색해 각 단지별로 연결된 집을 찾아 개수를 세는 방법으로 해결하였다. 그래프를 생성하고 각 단지의 시작을 찾아 넓이 우선 탐색을 진행하고 탐색한 집은 1에서 0으로 바꾸어 탐색을 진행하였다. 각 단지별로 집의 개수를 각각 세어 저장하고 이를 정렬해 출력해 주었다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import .. 2023. 7. 15.
[백준] 2606번 : 바이러스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 그래프 탐색을 활용하여 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 깊이 우선 탐색을 활용하여 해결하였다. 깊이 우선 탐색을 수행하는 함수를 생성한다. def Search(start) 해당되는 정점을 탐색한 것으로 표시한다. result[start] = True 해당 정점과 연결되는 정점들을 하나씩 추출한다. for i in graph[start] .. 2023. 7. 15.
[자바(Java) 공부하기] 15. 클래스 배열(객체 배열) - 우당탕탕 개발자 되기 프로젝트 각 원소가 클래스로 이루어진 배열을 만들 수 있는데, 이런 클래스 배열은 자료의 값을 담는 기본 자료형 배열과는 다르게 객체 자체를 담는 배열입니다. 객체는 생성자를 통해 만드는 인스턴스를 뜻합니다. 기본 자료형이 직접 값을 메모리에 넣는 기본 자료형 배열과는 다르게 객체 배열은 주소값을 넣습니다. 클래스 배열은 기본적으로 클래스를 만들고 클래스 이름[] 변수 이름 = new 클래스 이름[배열 길이]; 형식으로 선언할 수 있고 변수 이름[index 값] = new 생성자(매개변수,...); 형식으로 클래스 배열을 각각 생성할 수 있습니다. 객체 배열은 기본 자료형 배열과 마찬가지로 index를 활용하여 각 원소에 접근할 수 있습니다. 접근한 원소는 각각 객체이기 때문에 그 객체가 가지고 있는 필드나 메서.. 2023. 7. 15.
[프로그래머스] 괄호 회전하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 빠른 연산에 용이한 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 괄호를 회전한 결과를 저장할 deque을 생성한다. queue = deque() 초기 괄호의 상태를 deque 자료구조로 추가한다. queue.append(deque(s)) 다음부터 괄호 길이 전까지 for _ in range(1, len(s)) 문자열을 deque 자료구조로 저장한다. s = deque(s) 문자열에서 가장 앞 괄호를 제거하고.. 2023. 7. 14.
[프로그래머스] 귤 고르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 크기별 개수를 저장할 딕셔너리를 생성한다. d = {} 입력받은 귤을 하나씩 추출한다. for i in tangerine 만약 이미 딕셔너리에 해당 크기가 존재하면 개수에 1을 더한다. if (i in d): d[i] += 1 반면에 해당 크기가 처음 나왔으면 개수를 1로 하여 추가한다. else: d[i] = 1 전체 귤의 개수를 크기별로 모두 세었다면 해당 딕셔너리를 개수(value)를 기준으로 내림차순 정렬한다. 개수가 많은 값부터 귤을 추가해야 최소한의 종류로 판매할 .. 2023. 7. 14.
[프로그래머스] 추억 점수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 사진별로 하나씩 불러온다. for i in photo 점수를 저장할 변수를 생성하고 초기화한다. score = 0 이름을 하나씩 불러오며 for j in name 만약에 불러온 사진에 해당 인물이 있을 경우 if (j in i) 점수에 해당 인물의 점수를 추가한다. score += yearning[name.index(j)] 이름을 모두 확인하며 점수를 구했으면 해당 점수를 정답에 추가한다. answer.append(score) 3. 소스코드 def solution(name, .. 2023. 7. 14.
[프로그래머스] 콜라 문제 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 남아있는 콜라의 개수가 바꿀 수 있는 콜라의 개수보다 작아질 때까지 반복한다. while (n >= a) 바꾼 콜라의 개수는 현재 가지고 있는 콜라의 개수에서 바꿔주는 빈 병의 개수로 나눈 몫에 가져가면 얼마의 새 병으로 바꿔주는 지를 곱한 값이다. answer += (n // a) * b 이후 바꾼 결과에 바꾸기 전 바꾸지 못하고 남은 콜라까지 더하여 그 값을 새로 저장한다. n = (n // a) * b + (n % a) 3. 소스코드 def solution(a, b, n):.. 2023. 7. 14.
[프로그래머스] 멀리 뛰기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 수마다 경우의 수를 저장할 딕셔너리를 생성한다. d = {} 처음에 움직이지 않는 경우와 1칸 움직이는 경우를 딕셔너리에 추가한다. d[0] = 1 d[1] = 1 다음 숫자인 2부터 입력받은 수까지 반복하며 다음 수의 경우의 수를 저장한다. 다음 수의 경우의 수는 이전 수의 경우의 수와 그 이전 수의 경우의 수를 더한 값이다. for i in range(a, n + 1): d[i] = d[i - 1] + d[i - 2] 1칸과 2칸을 이동하여 각 칸으로 갈 수 있는 방법은 .. 2023. 7. 14.
[자바(Java) 공부하기] 14. 생성자 - 우당탕탕 개발자 되기 프로젝트 생성자(constructor)는 new 연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화 역할을 합니다. 객체 초기화란 필드를 초기화하거나 메서드를 호출해서 객체를 사용할 준비를 하는 것을 말합니다. 생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없습니다. new 연산자에 의해 성성자가 성공적으로 실행되면 힙(heap) 영역에 객체가 생성되고 객체의 주소가 반환됩니다. 반환된 객체의 주소는 클래스 변수에 저장됩니다. 모든 클래스는 생성자가 반드시 존재하며, 생성자를 하나 이상 가질 수 있습니다. 클래스 내부에 생성자 선언을 생략했다면 컴파일러는 중괄호 { } 블록 내용이 비어있는 기본 생성자를 자동을 생성합니다. 기본 생성자 외의 생성자를 선언하려면 생성자의 매개변수의 내용과 이에 따.. 2023. 7. 14.
728x90
반응형