본문 바로가기

코딩 테스트 문제 풀이

(9)
백준 - 구간 합 구하기 5 (11660) 문제 링크https://www.acmicpc.net/problem/11660 [Silver I] 구간 합 구하기 5 - 11660성능 요약메모리: 129056 KB, 시간: 1268 ms분류다이나믹 프로그래밍, 누적 합제출 일자2024년 9월 2일 10:38:04문제 설명N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다.예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자.여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다.표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처..
백준 - 구간 합 구하기 4 (11659) 문제 링크https://www.acmicpc.net/problem/11659[Silver III] 구간 합 구하기 4 - 11659성능 요약메모리: 55544 KB, 시간: 548 ms분류누적 합제출 일자2024년 8월 22일 13:19:58문제 설명수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.출력총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다.알고리즘을 모른채로 풀었을 때, 시간 복잡도 때문에 오답처리되었던 문제이다...
백준 - 문자열 10809 문제 입력된 단어에 알파뱃이 있는지 확인하고, 있을시에는 알파뱃의 위치를, 없을 때는 -1을 입력하는 간단한 문제이다. 내 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String str = br.readLine(); String[] ar..
백준 - 1차원 배열 10810 백준은 꾸준히 풀어보고 있다. 쉬운 문제들은 넘어가고 헷갈렸던 문제들에 대해서만 풀이를 남겨보려한다. 문제 풀이 문제의 난이도는 어렵지 않은 것 같은데, 문제를 이해하는게 시간이 오래걸렸던 것 같다. 처음에, 바구니의 갯수 N과 바구니에 공을 넣는 횟수 M이 주어진다. 바구니에 공을 넣는다는게, 1 ~ N 번호의 바구니에 공을 한번씩 전부 집어넣는다는 의미이다. 둘째 줄부터는 공을 넣는 방식이라고 이해하면 된다. 1 2 3 의 숫자가 주어졌다면, 1번부터 2번 바구니까지 3번공을 전부 집어넣겠다는 것이다. 정리하자면, 공을 M번 넣을건데 각 횟수마다 어떻게 공을 집어넣을지 값을 받아서 계산하는 문제이다. 바구니에는 1개의 공만 들어가기 때문에, 만약 넣어야할 바구니에 공이 들어있다면 공을 교체한다. pu..
백준 - 입출력과 사칙연산 2257 항해 99를 마치고, 알고리즘 공부를 새롭게 시작하고자 한다. 그동안 시간 복잡도 개념에 대해서 무지한 채로 코딩을 진행해왔었는데, 좀 더 클린한 코드를 작성하기 위해서 시간 복잡도 개념이 들어가있는 백준에서 알고리즘 문제풀이를 시작하려고 한다. 프로그래머스와 달리 백준은 답변을 제출하는 방식이 달랐다. 제출할 코드의 클래스 이름을 반드시 Main으로 통일해주어야한다. 2257 문제는 Hello World!를 출력하는 간단한 문제였다. package 입출력과_사칙연산.Q2257; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedWriter bw = new Buffe..
프로그래머스 코딩 테스트(lv 0) 문제 풀이 - 4 암호 해독 class Solution { public StringBuilder solution(String cipher, int code) { StringBuilder answer = new StringBuilder(); for(int i=code-1; i
프로그래머스 코딩 테스트(lv 0) 문제 풀이 - 3 옷가게 할인받기 class Solution { public int solution(int price) { double answer = 0; if(price >= 100000 && price = 300000 && price = 500000){ answer = price * 0.8; }else{ answer = price; } return (int)(Math.floor(answer)); } } 삼항 연산자를 사용하면 간단하게 나타낼 순 있지만, 가독성이 조금 떨어지는 것 같아 조건문으로 처리했다. 채점 시, 자꾸 오류가 발생했는데 확..
프로그래머스 코딩 테스트(lv 0) 문제 풀이 - 2 배열 두 배 만들기 class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; int i=0; for(int num : numbers){ answer[i]= num*2; i++; } return answer; } } 배열 원소의 길이 class Solution { public int[] solution(String[] strlist) { int[] answer = new int[strlist.length]; for(int i=0;i 0 ? 1 : 0; int y = dot[1] > 0 ? 1 : 0; if(x==1 && y==1){answer=1;} else if(x==0 && y==1){an..