본문 바로가기
728x90
반응형

분류 전체보기510

[자바(Java) 공부하기] 4. 형변환 - 우당탕탕 개발자 되기 프로젝트 형변환이란 변수의 값을 다른 타입으로 변환하는 것을 말합니다. 형변환에는 자동 타입 변환과 강제 타입 변환이 있습니다. 자동 타입 변환은 작은 크기의 데이터 타입을 큰 크기의 데이터 타입으로 변환하는 것을 말합니다. 자동 타입 변환에는 단 하나의 예외가 존재하는데, char은 2byte의 크기를 갖지만 char의 범위는 음수가 저장될 수 없기에 음수가 저장될 수 있는 타입을 char 타입으로 자동 변환시킬 수 없습니다. 강제 타입 변환은 큰 크기의 데이터 타입을 작은 크기의 데이터 타입으로 변환하는 것을 말합니다. 강제 타입 변환은 다른 말로 캐스팅이라고도 합니다. 강제 타입 변환을 할 때는 소괄호()를 사용합니다. 변수1 = (변경하려는 데이터 타입)변수2; 형식으로 작성하면 변수2의 타입을 바꿔 변수.. 2023. 7. 4.
[백준] 2751번 : 수 정렬하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 프로그램 실행 시간이 최대한 적게 걸리도록 소스코드를 작성하는 것이 관건이다. 하여 정렬 알고리즘 중 가장 실행 시간이 적게 걸리는 병합정렬 알고리즘을 사용하여 문제를 해결하였다. 또한 자료구조 중 덱(deque)을 활용하여 병합정렬을 수행하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys deque이름으로 collections 라이브러리를 불.. 2023. 7. 4.
[프로그래머스] 이진 변환 반복하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 문자열을 리스트로 변환한다. s = list(s) 전체 이진 변환 횟수를 저장해 줄 변수를 생성하고 초기화한다. count = 0 변환 과정에서 제거된 모든 0의 개수를 저장해 줄 변수를 생성하고 초기화한다. countZero = 0 원하는 시점에서 멈추기 위해 무한 반복문을 사용한다. while (True) 현재 변환 과정에서 제거된 0의 개수를 저장해 줄 변수를 생성하고 초기화한다. zero = 0 문자열 리스트의 원소를 하나씩 추출한다. for i in s 만약 추.. 2023. 7. 4.
[자바(Java) 공부하기] 3. 변수와 자료형 - 우당탕탕 개발자 되기 프로젝트 변수는 특정 데이터를 저장하는 공간이라고 생각하면 됩니다. Java에서 변수를 생성하는 방법은 변수에 저장할 값의 자료형을 적어주고 변수명을 작성해 주면 됩니다. 자료형 변수명; 형식으로 작성해 주면 변수가 생성되고, 변수명 = 값; 형식으로 작성해 주면 변수가 해당 값이 변수에 저장됩니다. 변수를 생성할 때 이미 존재하는 변수명을 동일하게 사용하여 변수를 생성하게 되면 오류가 발생합니다. 변수를 생성할 때 생성과 동시에 초기화도 해줄 수 있습니다. 자료형 변수명 = 값; 형식으로 작성하면 변수를 생성하는 동시에 초기화도 해줍니다. Java의 변수명의 첫 글자는 소문자로, 여러 단어를 작성할 때는 연결 단어의 첫 글자를 대문자로, 나머지는 소문자로 작성합니다. 또한 Java에서는 변수명에 $와 _ 이외의.. 2023. 7. 4.
[백준] 1712번 : 손익분기점 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 1. 문제 설명 2. 풀이과정 고정 비용, 가변 비용, 노트북 가격을 입력받는다. A, B, C = map(int, input().split()) 만약 노트북 가격이 가변 비용보다 크다면 if (C - B > 0) 손익분기점을 계산하여 값을 출력한다. print(A // (C - B) + 1) 아니면 손익분기점이 존재하지 않으므로 -1을 출력한다. else: print(-1) 3. 소스코드 A, B, C = map(int, input().split()) if (C -.. 2023. 7. 3.
[프로그래머스] 같은 숫자는 싫어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 배열의 첫 번째 값은 무조건 결과에 들어가므로 추가해 준다. answer.append(arr[0]) 정답 배열의 인덱스 값을 계산해 줄 변수를 생성하고 초기화해 준다. i = 0 입력받은 배열의 각 원소를 하나씩 추출한다. for j in arr 만약 정답 배열의 바로 이전 값이 추출한 원소와 다른 값이면 if (answer[i] != j) 정답 배열에 추출한 원소를 추가한다. answer.append(j) 그리고 원소를 추가했으므로 정답 배열의 인덱스 값을 1 증가시킨.. 2023. 7. 3.
[백준] 2941번 : 크로아티아 알파벳 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1. 문제 설명 2. 풀이과정 입력받은 문자열을 하나씩 확인하며 크로아티아 알파벳을 변경하는 방법은 비효율적이고 시간이 많이 걸리며 오류가 발생하기 쉽다. 변경된 크로아티아 알파벳 결과를 미리 리스트로 만들어 저장한다. croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 변경된 크로아티아 알파벳으로 구성된 문자열을 입력받는다. word = input() 미리 만들어둔 변.. 2023. 7. 3.
[프로그래머스] 올바른 괄호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 자료구조 중 스택(Stack) 구조를 활용하여 해결하였다. 공백 리스트로 스택을 하나 생성한다. stack = list() 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s 만약 추출한 문자가 여는 괄호이면 스택에 문자를 추가한다. if (i == '('): stack.append(i) 반면에 추출한 문자가 닫는 괄호일 경우 else 만약 스택이 공백 상태가 아니면 스택에서 원소를 하나 제거한다. if (len(stack) > 0): stack.pop() 반면에 .. 2023. 7. 3.
[백준] 2798번 : 블랙잭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys 카드 개수와 만들어야 하는 합을 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 카드에 쓰여있는 수를 입력받아 각각 리스트로 저장한다. li = list(map(int, sys.stdin.readline().split())) 카드 3장을 뽑아 .. 2023. 7. 3.
[프로그래머스] 최솟값 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 어떤 두 수의 곱의 누적합이 최소가 되려면 각각 최소와 최대를 서로 곱하고 그 값을 더해주면 된다. 입력받은 매개변수 A 배열은 오름차순으로 정렬하고 A.sort() 입력받은 매개변수 B 배열은 내림차순으로 정렬합니다. B.sort() B.reverse() 두 배열의 길이는 동일하므로 배열 A의 길이만큼 덧셈을 반복한다. for i in range(len(A)) 각 배열의 동일한 위치에 있는 원소끼리 곱하여 누적합에 더해준다. answer += A[i] * B[i] 3. 소스코드.. 2023. 7. 3.
728x90
반응형