본문 바로가기

알고리즘

(138)
[백준 / 입출력] 2557: Hello World (Java) public class Main{ public static void main(String args[]){ System.out.println("Hello World!"); } } 백준은 프로그래머스랑 다르게 'public class Main'같은 부분을 직접 작성하는게 불편했다. 코테 언어 선택하는 부분에 있어서 고민할 때, python은 시간이 오래 걸려서 고민하는 사람이 많다는 글을 봤는데 이전에 python으로 이 문제를 풀었을 때와 시간을 비교하니 확실히 차이가 나는 것이 보였다.
[프로그래머스] 소수 찾기 (python) import math def solution(n): answer = 0 for i in range (2, n+1): check_prime = True for j in range(2, int(math.sqrt(i))+1): if(i % j == 0): check_prime = False break if(check_prime): answer += 1 return answer for j in range(2, i+1) 시간초과로 실패 -> 제곱근까지 돌리니까 문제 해결됨(시간복잡도 감소) 의문: 어차피 제곱근 넘어서 가기 전에 break로 끊기는데도 시간초과가 뜨는 이유가 뭘까? -> 엄청 큰 소수를 돌릴 때 제곱근까지만 돌려도 되는데 구지 n까지 돌릴 이유가 없기 때문 import math def soluti..
[프로그래머스] 짝수와 홀수 (JAVA) 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 3 "Odd" 4 "Even" #include #include #include char* solution(int num) { // 리턴할 값은 메모리를 동적 할당해주세요 char* answer = (char*)malloc(sizeof(char)); if(num%2==0) answer="Even"; else answer="Odd"; return answer; } char* answer = (char*)malloc(sizeof(char));
[프로그래머스] 행렬의 덧셈 (JAVA) 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 arr1arr2return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for(int i=0;i
1043 : [기초-산술연산] 정수 2개 입력받아 나눈 나머지 출력하기 입력 10 3 출력 1 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String num = in.nextLine(); String numS[] = num.split(" "); int a = Integer.parseInt(numS[0]); int b = Integer.parseInt(numS[1]); int result = a % b; System.out.println(result); } }
1042 : [기초-산술연산] 정수 2개 입력받아 나눈 몫 출력하기 입력 1 3 출력 0 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String num = in.nextLine(); String numS[] = num.split(" "); int a = Integer.parseInt(numS[0]); int b = Integer.parseInt(numS[1]); int result = a / b; System.out.println(result); } } split 메서드를 이용하여 공백으로 두 문자를 구분했다. 이후 parseInt를 사용하여 String 으로 입력받은 데이터를 int형으로 바꿔..
1041 : [기초-산술연산] 문자 1개 입력받아 다음 문자 출력하기 입력 영문자 1개가 입력된다. 출력 다음 문자를 출력한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); char c = in.next().charAt(0); System.out.println((char) (c + 1)); } }
1040 : [기초-산술연산] 정수 1개 입력받아 부호 바꿔 출력하기 입력 -1 출력 1 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); System.out.println(-n); } }

반응형