본문 바로가기
c언어 오류 C4996 'scanf': This function or variable may be unsafe. 해결법 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c언어 프로그래밍 중 빌드오류가 떴다. scanf 함수가 비주얼 스튜디오에서 보안 이슈로 막혀있어서 그렇다고 한다. 뭐 원인이 어쨌건 저쨌건 이걸 해결하려고 하는데 몇가지 방법이 있다. scanf_s 함수 사용 scnaf() 대신 scanf_s() 함수를 사용하면 오류가 해결되긴 한다. 그런데 scanf_s() 자체가 gcc에서 지원하지 않아 호환성이 떨어지고 visual studio에서만 막혀있다. 때문.. 2024. 1. 29.
[백준] 2563번 JAVA 색종이 - 2차원 배열 1~100까지 좌표에서 n만큼 좌표를 입력받고 좌표는 맨 아래 맨 왼쪽의 좌표를 받는다. 거기서 오른쪽으로 10칸 위로 10칸 정사각형을 n만큼 칠해서 총 칠해진 면적을 더해서 출력한다. (겹친 곳 제외) 100x100 크기의 배열을 만들고 한번 체크된 곳인지 아닌지만 중요하기 때문에 boolean 타입으로 배열을 선언한다. 정사각형 개수 n을 입력받고 x y좌표부터 x축은 오른쪽으로 10 y축으로 10칸 반복하면서 true로 체크한다. n만큼 반복하면서 true인 곳은 지나치고 true로 체크할때마다 sum 변수에 1씩 더해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner;.. 2024. 1. 26.
iptime 무선공유기 포트포워드 설정하기, 방화벽 포트 연결 허용하기 이전에 sk broadband 공유기 포트포워딩 포스팅을 한 적이 있었다. 고거슨 아래 링크에서 확인할 수 있다. SK Broadband 공유기 포트포워딩 설정 이사를 해서 여기 있던 iptime 공유기 포트포워딩을 하려고 한다. 1. iptime admin 접속 iptime 공유기 설정 페이지를 들어가서 admin 계정으로 로그인해야 한다. url 창에 192.168.0.1를 입력한다. 아이디는 admin 비밀번호도 admin 이다. 혹시 비밀번호가 달라져 있어서 찾을 수 없으면 공유기를 초기화하면 admin/admin 으로 로그인 할 수 있다. 관리도구를 들어간다. 3. 포트포워드 설정 고급 설정 -> NAT/라우터 관리 -> 포트포워드 설정으로 들어간다. 규칙이름을 입력한다. 알아볼 수 있게 정하면.. 2024. 1. 25.
[C언어 기초-09] 비트 연산자 논리 연산자 ~, &, |, ^ 비트 논리 연산자는 하나의 단항 연산자(~)와 세 개의 이항 연산자(&, |, ^)로 구성되어 있다. 논리 연산자와 기본 메커니즘은 같다고 생각하면 되고 비트는 0과 1로 되어있으니 0이 거짓 1이 참으로 생각하면 된다. 연산자 의미 사용법 기능 ~ 비트 부정 (NOT) ~ x x의 각 비트를 반전 1의 보수 연산 & 비트곱 (AND) x & y x, y를 각 비트 단위로 AND 연산 | 비트합 (OR) x | y x, y를 각 비트 단위로 OR 연산 ^ 배타적 논리합 (XOR) x ^ y x, y를 각 비트단위로 XOR 비트 부정(~)은 0은 1로 1은 0으로 바꾸면 된다. (NOT) 비트곱은 두 값이 1일 경우만 1로 계산한다. (AND) 비트합은 둘 중 하나라도 1이면 1로 계산한다. (OR) 배타.. 2024. 1. 25.
[백준] 10798번 JAVA 세로읽기 - 2차원 배열 행렬을 입력받고 행부터 먼저 세로로 다 출력하고 다음 열로 넘어가서 출력한다. 한 행에 0 ~ 15까지 입력할 수 있으니 char[5][15]로 선언을 하고 한 줄 씩 입력받으니 우선 String으로 입력받고 String 값 길이만큼 charAt() 함수로 2차원 배열에 입력한다. 5줄 입력받고 배열의 값이 null 이 아니면 행부터 증가하면서 출력. char변수는 null 체크를 0으로 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner.. 2024. 1. 16.
[백준] 2566번 JAVA 최댓값 - 2차원 배열 9x9 행렬에서 최대값을 출력하고 그 값의 위치를 출력한다. 단순히 for문을 돌면서 현재 max값과 비교해 더 큰 값이 입력되면 max에 저장하고 해당 위치 값을 row, col 변수에 저장해 놓는다. 입력값이 전부 0이면 0 1 1 이 출력되어야 하기 때문에 row, col은 1로 초기화 시킨다. for문을 다 돌고 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int arr[][] = new int.. 2024. 1. 15.
[백준] 2738번 JAVA 행렬 덧셈 - 2차원 배열 n*m 행렬을 두 번 입력하고 두 행렬을 더해서 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int arr1[][] = new int[n][m]; int arr2[][] = new int[n][m]; for(int i=0; i 2024. 1. 15.
[백준] 25206번 JAVA - 너의 평점은 - 심화1 (switch case, split()으로..) 너의 평점은 문제. 분명 대학교 졸업을 했는데 평점 구하는 법을 까먹었다. 아니 분명 계산을 어떻게 했었는데 어떻게 했더라... 검색해서 알아냈다. 어떤 과목에 대해 그 학점과 점수를 곱하고 전체 과목을 더한다. 그리고 내가 수강한 총 학점으로 나누면 내 평점이 된다. - 학점 * 점수 + 학점 * 점수 / 학점 + 학점 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 import java.util.Scanner; import java.util.StringTokenizer; public class Main{ pub.. 2024. 1. 8.
[C언어 기초-08] 비트 연산자 시프트 연산자 시프트 연산자 비트 시프트 연산자는 왼쪽의 값을 오른쪽 값만큼 비트를 왼쪽 혹은 오른쪽으로 이동시키는 연산자이다. 결과적으로는 비트를 이동시킬 때마다 2의 거듭제곱만큼 곱셈 또는 나눗셈을 한다. 연산자 의미 기본 형식 설명 > y x의 비트 표현을 y값 만큼 오른쪽으로 이동 왼쪽 이동 연산 비트를 왼쪽으로 이동시키며 이동 후 오른쪽 빈 공백은 0을 채워 넣고 왼쪽에서 밀려난 비트들은 버린다. 예를 들어 4 > 3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 16을 8비트로 표현한 후 오른쪽으로 이동시킨다. 값은 2가 된다. 16 / (2의 3제곱)이 된다. 2024. 1. 8.
[백준] 10988번 JAVA - 팰린드롬인지 확인하기 (심화1) 앞으로 읽을 때와 뒤로 읽을 때가 같은 문자열이면 1을 출력 아니면 0을 출력한다. 토마토, 기러기, 소주 만병만 주소 뭐 이런 것들을 의미한다. level로 예를 들면 0번째와 4번째가 같으면 되고 1번째와 3번째가 같으면 팰린드롬이다. 길이가 5면 2번 비교하면 되고 4면 마찬가지로 2번만 비교하면 된다. 길이 / 2로 해서 몫만 가지고 for문을 돌린다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); int.. 2023. 8. 3.
[백준] 2444번 JAVA - 별 찍기 - 7 (심화1) 규칙을 찾아서 for문을 돌리면 된다. 공백이 4 3 2 1 0 그리고 별은 1 3 5 7 9 순으로 출력된다. 어쨌건 입력받은 n을 기준으로 반복해야 하기 때문에 별은 (1 2 3 4 5 / 0 1 2 3 4) 이런 식으로 출력을 나눠서 한다. 감소하는 별도 마찬가지로 규칙을 찾아서 n을 기준으로 반복문으로 출력하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in.. 2023. 7. 30.
[백준] 11718번 JAVA - 그대로 출력하기 (문자열) 공백포함하여 입력받아 출력해야 하니 nextLine() 함수를 사용한다. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()) { System.out.println(sc.nextLine()); } } } Colored by Color Scripter cs 2023. 7. 30.
[백준] 9086번 JAVA - 문자열 (문자열) 문자열을 얼마나 입력할지 테스트 케이스의 수를 입력하고 문자열을 그만큼 입력한다. 문자열의 처음과 끝을 출력해 주면 되는데 charAt() 함수를 사용하여 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=0; i 2023. 7. 25.
[백준] 2743번 JAVA - 단어 길이 재기 (문자열) 알파벳으로만 입력한 문자열 길이를 출력하면 된다. length() 함수로 출력하면 끝.. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s.length()); } } Colored by Color Scripter cs 2023. 7. 25.
[백준] 27866번 JAVA - 문자와 문자열 (문자열) 문자열을 입력하고 수를 입력하면 해당 위치에 있는 문자를 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); int n = sc.nextInt(); System.out.println(s.charAt(n-1)); } } Colored by Color Scripter cs charAt() 함수를 사용하여 출력한다. 문자열도 char들의 배열이므로 0부터 n-1 까지 이므로 n-1의 위치에 문자를 출력한다.\ 2023. 6. 22.
[백준] 10811번 JAVA - 바구니 뒤집기 (1차원 배열) 1부터 n번의 번호를 가진 바구니가 있고 바구니를 역순으로 정렬할 건데 몇 번 반복할 건지 m을 입력하고 i~j까지의 순서를 역순으로 정렬한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //바구니 개수 int m = sc.nextInt(); //바구니 역순 정렬 횟수 int arr[] = new int[n + 1]; // 바구니 (1~n).. 2023. 6. 21.
[백준] 10813번 JAVA - 공 바꾸기 (1차원 배열) 1 부터 n 까지 바구니가 있고 각 바구니에는 1 부터 n 번의 공이 들어있다. 이 공을 m번 교환하는데 i 바구니와 j 바구니를 바꾸기로 한다. 프로그래밍에서 두 변수의 값을 바꿀때는 임시변수(tmp)를 생성해서 거기에 값을 넣고 교환하는 방식으로 한다. tmp = i; i =j; j = tmp; 이렇게 해서 출력만 하면 간단하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextI.. 2023. 6. 20.
[백준] 10810번 JAVA - 공 넣기 (1차원 배열) 문제가 길어서 읽기가 싫었다.. 먼저 n m 입력을 하면 1부터 n까지 바구니가 있고 i j k 정수를 m번 반복하여 입력한다. i번쨰 바구니부터 j번째 바구니까지 k숫자의 공을 넣는다. 중복되게 넣은 바구니는 나중에 넣은 공으로 바꾸고 1부터 n 까지 바구니의 들어있는 공을 출력한다. 없으면 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner sc = new Scanner(System.in); int n = sc... 2023. 6. 7.