The climate of the Republic of Korea is cold but sunny in winter, while it’s hot and sultry with abundant rainfall in summer. Spring and autumn are quite short but pleasant. The latitude of the country is not high: the border with North Korea is located on the 38th parallel, but the winter is cold because of the prevailing winds from Siberia.
South Korea is affected by the Asian monsoon regime, so that in winter, cold air masses from the Asian continent prevail, while in summer, warm and moist air masses from South-Eastern Asia stagnate over the country. In summer and in early autumn, South Korea can be affected by typhoons.
The precipitation pattern is the opposite to that of the Mediterranean climate: the driest season is winter, while the rainiest is summer.
Here is the average precipitation in Seoul.
Seoul - Average precipitation

Total annual precipitation is significant, spanning generally from 1,200 to 1,500 millimetres (47 to 60 inches), with the exception of the southern coast, in which it can reach 1,700 mm (67 in), as well as the northernmost inland regions, in which it can go down to 1,000 mm (40 in), and also of some particularly sheltered valleys like that of Daegu (or Taegu), in which it does not exceed 1,000 mm (40 in) per year.

Winter, from late November to mid-March, is cold, especially in the north and in the interior, where the average temperatures are below freezing (0 °C or 32 °F), while it’s milder, but still with night frosts, along the southern coast. The sun often shines, and sometimes snow can fall, but it’s relatively rare and not abundant. A cold and dry wind often blows from the continent, sometimes full of dust. Because of the greater exposure to cold winds of Siberian origin, at a given latitude the winter is colder on the west coast than on the east coast. The average January temperature exceeds 0 degrees Celsius (32 °F) only on the southern coast, while on the east coast it's around freezing even in the north. The interior is obviously colder than the coastal areas, in fact in the north-central inland area the average temperature in January is around -4 °C (25 °F), as we can see from the temperatures of Chuncheon.
Chuncheon - Average temperatures
Min (°C)-8-605111621201571-5
Max (°C)031017232628282418102
Min (°F)182132415261706859453423
Max (°F)323750637379828275645036

The capital Seoul is located near the coast, but in the north-west, which as we said is the region most exposed to cold winds, and its average temperature in January is -2.5 °C (27.5 °F).
Seoul - Average temperatures
Min (°C)-6-4171318222217103-3
Max (°C)241018232729302620124
Min (°F)212534455564727263503727
Max (°F)363950647381848679685439

Near Seoul, the Yellow Sea is very cold in winter, but warms up a lot in summer, reaching 24 °C (75 °F) in August, as we can see from the sea temperatures at Incheon.
Incheon - Sea temperature
Temp (°C)5558131722242319149
Temp (°F)414141465563727573665748

In the southernmost cities like Mogpo and Busan (or Pusan), the climate is much milder, and the average temperature in January goes up to around 3 °C (37.5 °F).
Busan - Average temperatures
Min (°C)-1051014182223191482
Max (°C)8913182224272926221610
Min (°F)303241505764727366574636
Max (°F)464855647275818479726150

At Busan, and along the southern coast, the sea is much less cold in winter, while in summer it gets a bit warmer than in Seoul, reaching 26 °C (79 °F) in August.
Busan - Sea temperature
Temp (°C)141313141720232624211916
Temp (°F)575555576368737975706661

The southern island of Jeju (or Cheju) is even milder: here the average temperature in January is about 5/6 °C (41/43 °F).
Jeju City - Average temperatures
Min (°C)34610141923242015105
Max (°C)8913182225293026211611
Min (°F)373943505766737568595041
Max (°F)464855647277848679706152

During cold spells, the temperature can drop to -20 °C (-4 °F) in Seoul and in northern inland areas, and around -10 °C (14 °F) in the south, while it only drops to a few degrees below freezing in Jeju-do.
The north-east is mountainous, and in addition to being freezing cold, it is also quite snowy. This is the region (called Gangwon-do) where there is the largest number of ski lifts, which given the low temperature, are also found at quite low altitudes, below 1,000 metres (3,300 feet). The highest mountain in the area is Seorak, 1,708 metres (5,604 feet), protected in a national park.
The northeast coast, though milder, is a little wetter in winter as well: in this season the average monthly precipitation along the north-east coast is about 45/60 mm (1.8/2.4 in), while in Seoul and in southern cities like Sokcho and Gangeung (or Kangung) it is about 20/25 mm (0.8/1 in). The southwest coast, where Mogpo (or Mokp'o) is located, and Jeju Island, are a bit more rainy and less sunny as well.
The least snowy area is the south-east coast, due to the higher temperature, and also to the fact that in periods of bad weather the wind blows from the south. There are on average 25 days with snow (maybe light) per year in Seoul (located in the northwest), 22 days in Incheon (near Seoul but on the coast), 27 in Mokpo (on the south-west coast), 12 in Daegu (in the south-eastern inland areas), and only 5 in Busan, on the southeast coast.

Konjiam, ski lift near Seoul

Spring, from March to May, is initially cool, and gradually becomes milder, but the rains become more frequent, due to the formation of low pressure systems.
In winter and especially in spring (March to May, which is called yellow dust season), South Korea (but especially the Seoul area) can be reached by the yellow dust (HwangSa in Korean), coming from the desert of Mongolia and from China, which forms a characteristic haze and causes breathing problems and eye irritation.

Summer is hot, humid and rainy. The high humidity makes the weather sweltering, especially in July and August. Rainfall can be heavy especially in July and August. Two thirds of the annual rainfall occur in summer. However, between periods of bad weather, there can also be sunny days, which may be hot.
Especially between late June and early August, an almost stationary front (called Changma) moves over Korea, which can cause heavy rainfall (sometimes associated with floods), but also fog, low clouds and drizzle. In the second part of summer, it goes a bit better and the sunshine amount increases, although typhoons can add more rain.
Summer is, however, the least sunny season, especially if you consider the length of the day. Here, for example, the sunshine hours per day in Seoul.
Seoul - Sunshine

Autumn in South Korea is pleasant, especially in the month of October, in which the maximum temperatures are around 20/22 °C (68/72 °F). In addition, in autumn it usually rains less than in spring.

As mentioned, South Korea can be hit by typhoons. Typhoon is the name given to tropical cyclones in East Asia. Typhoons are accompanied with large amounts of rainfall and strong winds, and usually produce the greatest damage on Jeju Island and the south coast.
Typically, typhoons affect Korea from July to early October, with a higher probability in the first half of September. Sometimes they also arrive in the second half of June, although they are generally less strong and only affect the extreme south.

When to go

Considering both the cold winter and the hot and rainy summer, the best times to visit South Korea are spring and autumn, especially the months of May and October, with a preference for October, because it rains less (and it's outside the so-called yellow dust season). Moreover, in autumn you can admire the fall foliage in national parks.
As we have seen, the sea is warm enough for swimming from July to September, especially in the center-south.

What to pack

In winter: for Seoul and the center-north, warm clothes, down jacket, gloves, scarf, hat. For the south, Mogpo and Busan, warm clothes, sweater, jacket; scarf, gloves and hat for the evening, possibly a raincoat or umbrella.
In summer: light clothes, of natural fibres, light raincoat or umbrella, scarf for the wind, light sweatshirt for air-conditioned places.
It is customary to remove shoes before entering homes and temples: it can be useful to bring shoes without laces, or at least easy to take off.