예외처리
예외처리는 자바에서 Throwable이라고 하고 Error랑 Exception으로 나뉜다.
Error는 동작 자체가 멈추는것이고
Exception은 동작자체는 멈추지 않고, 다른동작을 실행하거나 유저에게 알려주는 역할을 한다.
Try-catch 형식
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int number =10;
int result;
for (int i=10;i>=0;i--)
{
try{
result= number/i;
System.out.println(result);
}
catch (Exception e)
{
System.out.println("Exception occure"+ e.getMessage());
}
finally {
System.out.println("항상 finally가 실행된다");
}
}
}
}
Try-with-resouce 형식
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (FileOutputStream out = new FileOutputStream("test.txt")) {
// test.txt file 에 Hello Sparta 를 출력
out.write("Hello Sparta".getBytes());
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
같은 코드 try-catch 형식
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileOutputStream out = new FileOutputStream("test.txt");
try {
// test.txt file 에 Hello Sparta 를 출력
out.write("Hello Sparta".getBytes());
out.flush();
}
catch (IOException e) {
e.printStackTrace();
}
out.close();
}
}
0레벨 프로그래머스 안전지대
59.3점 자리 코드
class Solution {
public int solution(int[][] board) {
int answer = 0;
int[][] check = new int[101][101];
for(int i=0;i<board.length;i++)
{
for(int j=0;j<board[i].length;j++)
{
if(board[i][j]==1)
{
if((i-1)<0 || (j-1)<0 || (i+1)>(board.length-1)|| (j+1)>(board[i].length-1) ) continue;
check[i][j]=1;
check[i][j+1]=1;
check[i][j-1]=1;
check[i+1][j]=1;
check[i-1][j]=1;
check[i+1][j+1]=1;
check[i+1][j-1]=1;
check[i-1][j+1]=1;
check[i-1][j-1]=1;
}
}
}
for(int i=0;i<board.length;i++)
{
for(int j=0;j<board[i].length;j++)
{
if(check[i][j]==0)
{
answer++;
}
}
}
return answer;
}
}
100점 짜리코드
class Solution {
public int solution(int[][] board) {
int answer = 0;
int x[] = {0,0,1,-1,1,1,-1,-1};
int y[] = {1,-1,0,0,1,-1,1,-1};
int[][] check = new int[board.length][board[0].length];
for(int i=0;i<board.length;i++)
{
for(int j=0;j<board[i].length;j++)
{
if(board[i][j]==1)
{
check[i][j]=1;
for(int k=0;k<8;k++)
{
int ny = i+y[k];
int nx = j+x[k];
if(ny>=0 && nx>=0 && ny<=(board.length-1) && nx<=(board[i].length-1))
{
check[ny][nx]=1;
}
}
}
}
}
for(int i=0;i<check.length;i++)
{
for(int j=0;j<check[i].length;j++)
{
if(check[i][j]==0)
{
answer++;
}
}
}
return answer;
}
}
문제점 : 범위의 문제가 있었다. 미리계산해주고, 범위에 들어가면 무조건 넣어라!!!
프로그래머스 각도기
class Solution {
public int solution(int angle) {
int answer=0;
if(angle<90)
{
answer=1;
}
else if(angle==90)
{
answer=2;
}
else if(angle>90 && angle<180){
answer=3;
}
else{
answer=4;
}
return answer;
}
}
프로그래머스 옷가게
class Solution {
public int solution(int price) {
int answer = 0;
if(price<100000){answer=price;}
else if(price>=100000 && price <300000){answer=(int)(price*0.95);}
else if(price>=300000 && price <500000){answer=(int)(price*0.9);}
else{answer=(int)(price*0.8);}
return answer;
}
}
프로그래머스 369게임
class Solution {
public int solution(int order) {
int answer = 0;
String str = Integer.toString(order);
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='3' ||str.charAt(i)=='6' ||str.charAt(i)=='9'){
answer++; }
}
return answer;
}
}
'스파르타코딩클럽(내일배움캠프)' 카테고리의 다른 글
스파르타 코딩 클럽 3주차 5일 (1) | 2022.11.18 |
---|---|
스파르타 코딩 클럽 3주차 4일 (1) | 2022.11.17 |
스파르타 코딩 클럽 3주차 2일 (0) | 2022.11.15 |
스파르타 코딩 클럽 3주차 1일 (0) | 2022.11.14 |
스파르타 코딩 클럽 2주차 후기 (0) | 2022.11.13 |