1. 부족한 금액 계산하기
ttps://school.programmers.co.kr/learn/courses/30/lessons/82612?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public long solution(int price, int money, int count) {
long answer = 0;
for(int i = 1; i <= count; ++i){
answer += price * i;
}
if(money >= answer) return 0;
return answer - money;
}
}
2. 행렬의 덧셈
https://school.programmers.co.kr/learn/courses/30/lessons/12950?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for (int i=0; i<arr1.length; i++) {
for (int j=0; j<arr1[0].length; j++) {
answer[i][j] += arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
3. 직사각형 별찍기
https://school.programmers.co.kr/learn/courses/30/lessons/12969
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
for (int i=0; i<b; i++) {
for (int j=0; j<a; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
4. 최대공약수와 최소공배수
https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int[] solution(int n, int m) {
int[] answer = new int[2];
int gcd = 1; //최대공약수
int min_value = n > m ? m : n; //최대공약수
for (int i=2; i<=min_value; i++) {
if(n % i == 0 && m % i ==0) {
gcd = i;
}
}
int lcm = (n / gcd) * (m/gcd) * gcd; //최소공배수
answer[0] = gcd;
answer[1] = lcm;
return answer; //answer[0]answer[1] 이렇게 붙는다.
}
}
5. 같은 숫자는 싫어
https://school.programmers.co.kr/learn/courses/30/lessons/12906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
Stack<Integer> stack = new Stack<>();
int cnt = 0;
for(int i = 0; i < arr.length; ++i){
if(stack.empty() || stack.peek() != arr[i]){
stack.push(arr[i]);
cnt += 1;
}
}
int[] answer = new int[cnt];
int[] temp = new int[cnt];
for(int i = 0; i < cnt; ++i){
temp[i] = stack.pop();
}
for(int i = 0; i < cnt; ++i){
answer[i] = temp[cnt - i - 1];
}
return answer;
}
}
Appendix
Scanner (파라미터 쓸 때와 차이)
별찍기 할때, parameter 쓰는 대신 사용
어떤 입력값을 받는 기능이 필요할 때 사용 Scanner를 사용할 때에는 해당 클래스를 호출해야 한다. System.in
Stack 에 대해서
쌓는것. 먼저 들어간 자료가 나중에 나옴
//값 추가
Stack<Integer> stack = new Stack<>(); //int형 스택 선언
stack.push(1); // stack에 값 1 추가
// stack에 값 제거
stack.pop();
// stack의 전체 값 제거 (초기화)
stack.clear();
// stack의 가장 상단의 값 출력
stack.peek();
https://coding-factory.tistory.com/601
[Java] 자바 Stack 클래스 사용법 & 예제 총정리
Stack이란? 자료 구조 중 하나인 Stack의 사전적 정의는 '쌓다', '더미'입니다. 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조라고 할 수 있습니다. Stack의 가장 큰 특징은 나중에 들어간 것
coding-factory.tistory.com
n > m ? m : n ;
n > m 보다 크면 n : m
아니면 m : n
gcd (최대공약수)
int min = (a < b) ? a : b; // 참이면 a이고 아니면 b 인거지.
int gcd = 0;
for (int i = 1; i <= min; i++) {
if (a % i == 0 && b % i == 0)
gcd = i;
}
lcm (최소 공배수)
int min = (a < b) ? a : b; // 참이면 a이고 아니면 b 인거지.
int gcd = 0;
for (int i = 1; i <= min; i++) {
if (a % i == 0 && b % i == 0)
gcd = i;
}
System.out.println("최소공배수 : " + a * b / gcd);
//(a * b) * 최소공배수
'코딩테스트 > programmers' 카테고리의 다른 글
프로그래머스 [#7] 코딩테스트 연습 JAVA - 7 (0) | 2023.01.05 |
---|---|
프로그래머스 [#5] 코딩테스트 연습 JAVA - 5 -(only Lv 2) (0) | 2022.12.15 |
프로그래머스 [#3] 코딩테스트 연습 JAVA - 3 (0) | 2022.12.01 |
프로그래머스 [#2] 코딩테스트 연습 JAVA - 2 (0) | 2022.11.23 |
프로그래머스 [#1] 코딩테스트 연습 JAVA - 1 (0) | 2022.11.17 |
댓글