현재 로칼 컴퓨터의 아이피 알아내기





using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Diagnostics;
using System;
using System.Linq;
using System.Net;

class Program
{
    public static void Main(string[] args)
    {
        NETNM nmm = new NETNM();
        nmm.RUN();
    }
}
class NETNM
{
    public void RUN()
    {
        var host = Dns.GetHostEntry(Dns.GetHostName());
        foreach (var ip in host.AddressList)
        {
            if (ip.AddressFamily == AddressFamily.InterNetwork)
            {
                Console.WriteLine(ip.ToString());
            }
        }
    }
}

문제

'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다.

게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다.

뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다.

  • 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.
  • 만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다.
  • 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다.
  • 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하지 않는다.

사과의 위치와 뱀의 이동경로가 주어질 때 이 게임이 몇 초에 끝나는지 계산하라.

입력

첫째 줄에 보드의 크기 N이 주어진다. (2 ≤ N ≤ 100) 다음 줄에 사과의 개수 K가 주어진다. (0 ≤ K ≤ 100)

다음 K개의 줄에는 사과의 위치가 주어지는데, 첫 번째 정수는 행, 두 번째 정수는 열 위치를 의미한다. 사과의 위치는 모두 다르며, 맨 위 맨 좌측 (1행 1열) 에는 사과가 없다.

다음 줄에는 뱀의 방향 변환 횟수 L 이 주어진다. (1 ≤ L ≤ 100)

다음 L개의 줄에는 뱀의 방향 변환 정보가 주어지는데, 정수 X와 문자 C로 이루어져 있으며. 게임 시작 시간으로부터 X초가 끝난 뒤에 왼쪽(C가 'L') 또는 오른쪽(C가 'D')로 90도 방향을 회전시킨다는 뜻이다. X는 10,000 이하의 양의 정수이며, 방향 전환 정보는 X가 증가하는 순으로 주어진다.

출력

첫째 줄에 게임이 몇 초에 끝나는지 출력한다.

새롭게 프로젝트를 만들고 “Application Folder” 속성에 “DefaultLocation” 정보가 보이게 됩니다. 이곳의 정보를 수정하면은 변경을 할수 있습니다.

// [ProgramFilesFolder] :: 설치할 경로
// [Manufacturer] :: 필수 유지 위에서 설명함.
// [ProductName] :: 설치할 폴더명(프로젝트 이름과 달리 할수 있음)
[ProgramFilesFolder][Manufacturer]\[ProductName]

저 처름 입력하면은 “C:\Default Company Name\MyPROGRAM” 경로에 디렉토리를 만들고 Installer에 추가한 파일이 설치가 됩니다. 간단하면서도 모르면 그냥 헤메가 되는것 같아서 적어 봅니다.

 Windows에서 사용하는 환경변수를 그대로 사용할수 있어서 글 말미에 참고 삼아서 넣어 놓습니다. 현재 모두 테스트를 해 본것은 아니지만 어느정도 사용이 가능한 부분이여서 참고만 해주시면 됩니다.
%HomeDrive% – 로그인한 계정의 정보가 들어있는 드라이브
%HomePath% – 로그인한 계정의 폴더
%SystemDrive% – 윈도우가 부팅된 드라이브
%SystemRoot% – 부팅된 운영체제가 들어있는 폴더
%ProgramFiles% – 기본 프로그램 설치 폴더
%TEMP%, %TMP% – 임시 파일이 저장되는 폴더
%ComSpec% – 기본 명령 프롬프트 프로그램
%USERDOMAIN% – 로그인한 시스템의 도메인 명
%USERNAME% – 로그인한 계정 이름
%USERPROFILE% – 로그인한 유저의 프로필이 들어있는 폴더명
%ALLUSERPROFILE% – 모든 사용자 프로필이 저장된 폴더
%APPDATA% – 설치된 프로그램의 필요 데이터가 저장된 폴더
%LOGONSERVER% – 로그인한 계정이 접속한 서버명
%Path% – 실행 참조용 폴더 지정 목록
%PathEXT% – 참조용 폴더에서 검색한 파일들의 확장자 목록

 

1. INIT(BackgroundWorker/Redis Server Connect)
2. Get Music List & BLPUSH( with Redis Key)
3. BackgroundWorker Process(BLPOP with Redis Key)

 

 

UAPDBMQ0010.cs
0.01MB
program.cs
0.00MB
RADIO_K_18_00.cs
0.01MB

 



csc.exe /reference:ServiceStack.Common.dll,
ServiceStack.dll,ServiceStack.Interfaces.dll,
ServiceStack.ServiceInterface.dll,
Newtonsoft.Json.Net20.dll 
/out:MMM.exe 
/recurse:*.cs



RedisCheck.cs
0.00MB
RedisMusicData.cs
0.01MB
program.cs
0.00MB




csc.exe
/reference:ServiceStack.Common.dll,
ServiceStack.dll,
ServiceStack.Interfaces.dll,
ServiceStack.ServiceInterface.dll 
/out:MMM.exe 
/recurse:*.cs

 


using System;
using System.Timers;
using System.IO;


class Program
{
    public static void Main()
    {
        CHKNMNM nmm = new CHKNMNM();
        nmm.CALCCHK();
        nmm.REALCHK();
        nmm.DISPCHK();
    }
}

class CHKNMNM
{
    string[] HOLIDAY = new string[]
    {
    "2024-01-01",
    "2024-02-09",
    "2024-02-12",
    "2024-03-01",
    "2024-04-10",
    "2024-05-01",
    "2024-05-06",
    "2024-05-15",
    "2024-06-06",
    "2024-08-15",
    "2024-09-16",
    "2024-09-17",
    "2024-09-18",
    "2024-10-03",
    "2024-10-09",
    "2024-12-25",
    };
    string[] HOLIDAYNM = new string[]
    {
    "2024-01-01(신정)",
    "2024-02-09(구정)",
    "2024-02-12(구정)",
    "2024-03-01(삼일절)",
    "2024-04-10(선거일)",
    "2024-05-01(노동절)",
    "2024-05-06(어린이날대체)",
    "2024-05-15(부처님오신날)",
    "2024-06-06(현충일)",
    "2024-08-15(광복절)",
    "2024-09-16(추석)",
    "2024-09-17(추석)",
    "2024-09-18(추석)",
    "2024-10-03(개천절)",
    "2024-10-09(한글날)",
    "2024-12-25(크리스마스)",
    };
    string[] YOIL = new string[]
    {
    "MONDAY",
    "TUESDAY",
    "WEDNESDAY",
    "THURSDAY",
    "FRIDAY",
    "SATURDAY",
    "SUNDAY",
    };
    string[] RANDOMNM = new string[]
    {
    "CHO","PARK","JIN",
    };

    const int MAX_CNT = 1024;
    string[] CHKNM = new string[MAX_CNT];
    string[] CHKDT = new string[MAX_CNT];
    string[] CHKYO = new string[MAX_CNT];
    string[] CHKRM = new string[MAX_CNT];

    public void CALCCHK()
    {
        int ii = 0; //(1-MON, 7-SUNDAY)
        int day = 0;
        int mm = 0;
        int kk = 0;

DateTime now = DateTime.Now;
DateTime calcnow;

//POINT:CHKRM's INCREASE ITSELF
//POINT:RANDOMNM's INCREASE ITSELF
//POINT:CHKRM's INCREASE ITSELF
//POINT:RANDOMNM's INCREASE ITSELF

        while(true)
        {
            calcnow = now.AddDays(day);
            if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) < 20231231)
            {
                day++;
                continue;
            }
            if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20250101) break;
            if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20231231) ii=7;




    int check = 0;
    for(int ff =0; ff < HOLIDAY.Length; ff++)
    {
        if(calcnow.ToString("yyyy-MM-dd") == HOLIDAY[ff])
{
    check = 100;
    break;
}
    }


    if(check == 0)
    {
        if(ii==4) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
else if(ii==5) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
    }
    else
    {
        if(ii==1) CHKRM[kk++] = "PARK";
else if(ii==2) CHKRM[kk++] = "JIN";
else if(ii==3) CHKRM[kk++] = "CHO";
else if(ii==4) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
else if(ii==5) CHKRM[kk++] = RANDOMNM[ mm++ % 3];
    }

    day++;
    ii++;
    
    if(ii == 8) ii = 1;
}
    }
    public void REALCHK()
    {
        int ii = 0; //(1-MON, 7-SUNDAY)
int day = 0;
int kk = 0;
int sum = 0;

DateTime now = DateTime.Now;
DateTime calcnow;

        while(true)
{
    calcnow = now.AddDays(day);
    if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) < 20231231)
    {
        day++;
continue;
    }
    if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20250101) break;
    if(    Convert.ToInt32(calcnow.ToString("yyyy-MM-dd").Replace("-","")) == 20231231) ii=7;




    int check = 0;
    for(int ff =0; ff < HOLIDAY.Length; ff++)
    {
        if(calcnow.ToString("yyyy-MM-dd") == HOLIDAY[ff])
{
    check = 100;
    break;
}
    }


    if(check == 0)
    {
        if(ii==1)
{
    CHKNM[sum] = "PARK";
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==2)
{
    CHKNM[sum] = "JIN";
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==3)
{
    CHKNM[sum] = "CHO";
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
        else if(ii==4)
{
    CHKNM[sum] = CHKRM[kk++];
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==5)
{
    CHKNM[sum] = CHKRM[kk++];
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==6)
{
    CHKNM[sum] = "HOLIDAY";
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
else if(ii==7)
{
    CHKNM[sum] = "HOLIDAY";
    CHKYO[sum] = YOIL[ii-1];
    CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");
}
    }
    else if(check == 100)
    {
        CHKYO[sum] = YOIL[ii-1];
        CHKDT[sum] = calcnow.ToString("yyyy-MM-dd");

int subcheck = 0;
for(int ff=0; ff<HOLIDAY.Length; ff++)
{
    if(CHKDT[sum] == HOLIDAY[ff])
    {
        CHKNM[sum] = HOLIDAYNM[ff];
subcheck = 100;
break;
    }
}
if(subcheck == 0)
{
    CHKNM[sum] = "SPECIAL";
}
    }

    day++;
    ii++;
    sum++;
    
    if(ii == 8) ii = 1;
}
    }
    public void DISPCHK()
    {
        int kk = 0;

        while(true)
{
    string dateTxt = "";
    string nameTxt = "";

    int check = 0;
    for(int ii=0; ii<7; ii++)
    {
        dateTxt += CHKDT[kk] + "/";
nameTxt += CHKNM[kk] + "/";

        if(CHKDT[kk] == "2024-12-31")
{
    check = 100;
    break;
}

kk++;
    }
    Console.WriteLine(dateTxt);
    Console.WriteLine(nameTxt);

    if(check == 100) break;
}
    }
}




        
    
        

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

 

music_11_00.Designer.cs
0.01MB
program.cs
0.00MB
music_11_00.cs
0.01MB

수정코드)

void AddTxtLines(System.Windows.Forms.RichTextBox tmp, string text, int maxLines)
{
    if(true)
    {
        try
        {
            if(tmp.Lines.Count() >= maxLines)
            {
                List<string> lines = tmp.Lines.ToList();
                lines.RemoveAt(0);
                tmp.Lines = lines.ToArray();
            }
        }
        catch(AccessViolationException accexp)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
        }
    }
    try
    {
        tmp.AppendText(text);
        tmp.ScrollToCaret();
    }
    catch(AccessViolationException accexp)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + accexp.Message);
    }
    catch(Exception e)
    {
        Console.WriteLine("[MUSIC_DEBUG]:" + e.Message);
    }
}

 

program.cs
0.00MB
music_07_00.cs
0.01MB
music_07_00.Designer.cs
0.01MB

+ Recent posts