반응형

1. Point

  • 텍스트 파일에 내용 쓰기
  • 내용 덮어쓰기
  • 내용 추가하기 (덛붙여쓰기)

 

 

반응형

 

 

2. 전체 코드

using System;

using System.IO;
using System.Diagnostics;

namespace manual_txt_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 파일 경로
            FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt");


            // 파일 내용 저장
            FileStream fs2 = file.OpenWrite();
            TextWriter tw = new StreamWriter(fs2);

            // 파일 안에 있는 내용 지우고 아래 내용만 저장
            // tw가 선언된 뒤부터 추가한 내용들만 저장 (선언전에 있던 내용은 삭제)
            for (int i = 0; i < 100; i++)
            {
            	// 아래 내용이 100번 써진다
                tw.Write("\ntest1" + i);
            }
            // 꼭 Close()해줘야 다른 곳에서 파일 엑세스 에러가 발생하지 않는다
            tw.Close();
            fs2.Close();


            // 파일 내용 뒤에 추가하여 내용 저장
            // 따로 세이브 명령이 필요 없음
            //// 10만번 기준 8~9초 소요 (8300 ~ 9400 ms)
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 100000; i++)
            {
                File.AppendAllText(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt", "\ntest\n1234567890\n1234567890\n1234567890" + i);
            }
            string sw_time = sw.Elapsed.TotalMilliseconds.ToString();
            sw.Stop();
            Console.WriteLine(sw_time);

        }
    }
}
반응형
반응형

1. Point

  • 폴더 유무 확인 방법
  • 파일 유무 확인 방법

[C# 텍스트 파일]  01. 폴더/파일 유무 확인 방법

반응형

 

 

2. 전체 코드

using System;
using System.IO;

namespace manual_txt_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 폴더 경로 설정
            DirectoryInfo d_info = new DirectoryInfo(@"./test_dir2");

            // 폴더 유무 확인
            if (!d_info.Exists)
            {
                // 폴더가 없는 경우 폴더 생성
                d_info.Create();
                // 폴더 전체경로(절대경로) 출력
                Console.WriteLine(d_info.FullName.ToString());
            }


            // 파일 유무 확인
            // 'Directory.GetCurrentDirectory()' 현재 실행중인 프로그램의 위치 반환
            FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt");
            if (!file.Exists)
            {
                FileStream fs = file.Create();
                fs.Close();
            }
        }
    }
}
반응형
반응형

1. 문제

- [백준 C#] 14681번 사분면 고르기  (https://www.acmicpc.net/problem/14681)

 

흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.

예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.

점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.

 

 

2. 문제 포인트

  • 두 숫자 입력
  • 각각 숫자가 음수인지 양수인지 구분
  • 사분면 번호 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B5_14681번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int x = int.Parse(Console.ReadLine());
            int y = int.Parse(Console.ReadLine());

            if (x > 0 && y >0)
            {
                Console.WriteLine("1");
            }
            else if (x > 0 && y < 0)
            {
                Console.WriteLine("4");
            }
            else if (x < 0 && y > 0)
            {
                Console.WriteLine("2");
            }
            else
            {
                Console.WriteLine("3");
            }
        }
    }
}

// 14681번 사분면 고르기
// https://www.acmicpc.net/problem/14681
반응형
반응형

1. 문제

- [백준 C# 기초] 2588번 곱셈  (https://www.acmicpc.net/problem/2588)

 

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

 

2. 문제 포인트

  • 숫자 2가지 입력 받기
  • 일의 자리 곱, 십의 자리 곱, 백의 자리 곱 값을 각각 출력
  • 최종 계산값 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B3_02588번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            string b = Console.ReadLine();

            // int.Parse(b[0].ToString())을 사용하는 이유
            // int.Parse()는 string을 int로 변환 가능
            // string을 자르면 char형식이됨 (ex. b[0]는 string이 아닌 char이 된다)
            // b[0].ToString()으로 string으로 변환한 다음 int.Parse()로 변환
            Console.WriteLine(a * int.Parse(b[2].ToString()));
            Console.WriteLine(a * int.Parse(b[1].ToString()));
            Console.WriteLine(a * int.Parse(b[0].ToString()));
            Console.WriteLine(a * int.Parse(b));
        }
    }
}

// 2588번 곱셈
// https://www.acmicpc.net/problem/2588
반응형
반응형

1. 문제

- [백준 C# 기초] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰  (https://www.acmicpc.net/problem/3003)

 

동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.

체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.
체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.
동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.

 

 

2. 문제 포인트

  • 기준 개수 {1, 1, 2, 2, 2, 8}
  • 입력받은 값과 기준 개수 비교하여 차이 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B5_03003번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] in_data = Console.ReadLine().Split();

            // string 배열로 되어있는 입력값을 int형식으로 전체 변환
            int[] in_data_int = Array.ConvertAll(in_data, int.Parse);

            // 문제에서 제시된 각 말의 기본 개수
            int[] st = { 1, 1, 2, 2, 2, 8 };

            int[] result = new int[6];

            // 각 대응되는 값끼리 계산하여 부족여부 확인
            for(int i = 0; i < 6; i++)
            {
                result[i] = st[i] - in_data_int[i]; 
            }

            Console.WriteLine(string.Join(" ", result));
        }
    }
}

// 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰
// https://www.acmicpc.net/problem/3003
반응형
반응형

1. 문제

- [백준 C# 기초] 10171번 고양이 (https://www.acmicpc.net/problem/10171)

 

아래 예제와 같이 고양이를 출력하시오.
\    /\
 )  ( ')
(  /  )
 \(__)|

 

 

2. 문제 포인트

  • 콘솔창에 고양이 그림 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B5_10171번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 한줄씩 잘라서 표현
            // 역슬래시(\)는 2개를 붙여쓰면 특수기능이 아닌 문자 자체로 들어간다
            Console.WriteLine("\\    /\\");
            Console.WriteLine(" )  ( ')");
            Console.WriteLine("(  /  )");
            Console.WriteLine(" \\(__)|");
        }
    }
}

// 10171번 고양이
// https://www.acmicpc.net/problem/10171
반응형
반응형

1. 문제

- [백준 C# 기초] 10172번 개 (https://www.acmicpc.net/problem/10172)

 

아래 예제와 같이 개를 출력하시오.
|\_/|
|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|

 

 

2. 문제 포인트

  • 콘솔창에 개 그림 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B5_10172번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 역슬래시의 숫자를 잘 확인한다
            Console.WriteLine("|\\_/|");
            Console.WriteLine("|q p|   /}");
            Console.WriteLine("( 0 )\"\"\"\\");
            Console.WriteLine("|\"^\"`    |");
            Console.WriteLine("||_/=\\\\__|");
        }
    }
}

// 10172번 개
// https://www.acmicpc.net/problem/10172
반응형
반응형

1. 문제

- [백준 C# 기초] 10430번 나머지  (https://www.acmicpc.net/problem/10430)

 

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

 

 

2. 문제 포인트

  • A, B, C를 입력받음
  • 각각 계산하여 한줄씩 출력

 

 

반응형

 

 

3. 전체 코드

using System;

namespace B5_10430번
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 입력 받은 숫자를 배열로 나눠 한번에 int형식으로 변환
            int[] in_data = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);

            Console.WriteLine((in_data[0] + in_data[1]) % in_data[2]);
            Console.WriteLine(((in_data[0] % in_data[2]) + (in_data[1] % in_data[2])) % in_data[2]);
            Console.WriteLine((in_data[0] * in_data[1]) % in_data[2]);
            Console.WriteLine(((in_data[0] % in_data[2]) * (in_data[1] % in_data[2])) % in_data[2]);
        }
    }
}

// 10430번 나머지
// https://www.acmicpc.net/problem/10430
반응형

+ Recent posts